gpt4 book ai didi

angularjs - 将 UI-Router 状态参数从父级一致传递到子级

转载 作者:行者123 更新时间:2023-12-02 22:41:37 26 4
gpt4 key购买 nike

我有以下 UI 路由器状态定义(为简洁起见,精简为仅适用的方面):

 .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 中切换到其他状态。如果您最初将 ep.perma 状态作为 url 转到父级 ep.perma 状态,则一切正常。您可以全天在登录和注册之间切换,并且 :permalink 参数保持不变。

但是,如果您通过 URL .../acb123/login 或 .../abc123/register 导航到登录或注册状态,则最初一切正常。但是,如果您随后尝试通过单击 html 中的 SREF 链接(取决于您首先访问的 URL)从登录切换到注册或以其他方式切换,则 :permalink 参数引用将丢失。所以,如果我在.../abc123/login,登录html中注册的sref应该是.../abc123/register,但是是//register。它存在于任一 URL 的初始加载中,但不在该 html sref 中直接转到另一个 URL。

仅当直接通过 URL 进入登录或注册子状态时才会发生这种情况。如果我转到父 ep.perma URL .../abc123 最初一切都很好。

对于为什么会发生这种情况和/或如何解决这个问题有什么想法吗?我发现在发布此内容之前在这里进行了挖掘,我可以通过父级的解析传递参数,然后在子级中使用它们,但如果不直接访问,则不想以 .../abc123/abc123/login 结束通过网址。我也不是 100% 清楚如何将它们设置为子状态(仅示例中的 Controller here

我需要用户能够通过直接 URL 登录或注册,并在初始指定的 :permalink 参数持续存在的情况下在它们之间切换,就像直接访问父级作为初始 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 并尝试比较代码中的不同之处。或者让它损坏......继续它并修复它。

关于angularjs - 将 UI-Router 状态参数从父级一致传递到子级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31014837/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com