.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
解决方法
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'})">