加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 将UI-Router状态参数从父级传递给子级

发布时间:2020-12-17 17:14:48 所属栏目:安全 来源:网络整理
导读:我有以下UI-Router状态定义(为简洁起见,仅限于适用的方面): .state('ep.perma',{ url: '/:permalink',params: {permalink: ''},//default templateUrl: 'views/conference/home.html',controller: 'HomeCtrl' }) .state('ep.perma.login',{ url:'/login',te
我有以下UI-Router状态定义(为简洁起见,仅限于适用的方面):

.state('ep.perma',{
    url: '/:permalink',params: {permalink: ''},//default
    templateUrl: 'views/conference/home.html',controller: 'HomeCtrl'
  })

  .state('ep.perma.login',{
    url:'/login',templateUrl: 'views/dialogs/login.html',controller: 'LoginCtrl',})

  .state('ep.perma.register',{
    url: '/register',templateUrl: 'views/dialogs/register.html',controller: 'RegisterCtrl'
  })

父ep.perma状态中的:permalink参数可以是任何东西,但让我们说它是’acb123′.每个登录和注册状态都有一个sref链接,可以在其html中切换到其他状态.如果你最初作为url转到父ep.perma状态,一切正常.您可以在整天登录和注册之间切换,并且:permalink参数保持不变.

但是,如果您通过URL … / acb123 / login或… / abc123 / register导航到登录或注册状态,则一切正常.但是,如果你然后尝试从登录切换到注册或反过来(取决于你去的第一个URL)点击html中的SREF链接,:永久链接参数丢失.所以,我在… / abc123 / login,在logins html中注册的sref应该是… / abc123 / register,但是//注册.它是在任何一个URL的初始加载,但不是在那个html sref直接转到另一个.

只有通过URL直接登录或注册子状态才会发生这种情况.如果我去父母ep.perma URL … / abc123最初一切都很好.

有关为什么会发生这种情况的想法和/或如何解决这个问题?在发布之前我发现在这里挖掘我可以通过来自父级的解析传递param(s)然后在子节点中使用它们,但是如果不直接访问则不想结束… / abc123 / abc123 / login通过网址.我也不是100%明确如何将它们设置在子状态(仅根据示例here的控制器)

我需要用户能够通过直接URL登录或注册,并在具有初始指定的它们之间切换:永久链接参数保持不变,如果直接作为初始URL直接转到父级.

TIA

解决方法

想要帮助,给出一些想法,所以有 a working plunkr.重点是,它是按原样运作的.你甚至可以导航到直接网址(在地址栏中),它仍然可以工作:

http://run.plnkr.co/plunks/rQRG6ZpXLWADX9md1YV5/#/bara/register

这些链接也可以工作:

<a href="#/abc123">/abc123</a>
<a href="#/abc123/login">/abc123/login</a>
<a href="#/abc123/register">/abc123/register</a>

<a href="#/def456">/def456</a>
<a href="#/def456/login">/def456/login</a>
<a href="#/def456/register">/def456/register</a>

<a ui-sref="ep.perma({permalink:'xyz789'})">
<a ui-sref="ep.perma.login({permalink:'xyz789'})">
<a ui-sref="ep.perma.register({permalink:'xyz789'})">

检查它here并尝试比较代码中的不同之处.或者让它破碎……继续它并修复它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读