【发布时间】:2015-11-03 08:26:36
【问题描述】:
我目前正在开发用于管理用户身份的 SPA。我现在在为 Angular ui-router 中的状态定义 URL 时遇到问题。
这是我目前所知道的:
.state('identity', {
url: '/identity/:serialNumber',
templateUrl: 'app/components/Identity/identity.html',
controller: 'identityController'
})
.state('addidentity', {
url: '/identity/add',
templateUrl: 'app/components/Identity/identityAdd.html',
controller: 'identityController'
});
第一个状态(“身份”)通过 URL 参数“序列号”。这工作正常,我可以访问“identityController”中的参数。
我想用第二种状态(“addidentity”)实现的是,对于访问“/identity/add”的特殊情况,我想重定向到不同的模板(并且将来可能使用不同的控制器)。
但是,这不起作用。只有第一个状态可以。第二个被忽略。据我了解,问题是即使我访问“/identity/add”,这个 URL 在技术上仍然符合第一个状态。在这种情况下,状态参数“serialNumber”将简单地设置为“add”。
我认为我无法理解 ui-router 的工作原理。 ui-router 中有没有办法以不同的方式处理这两个 URL?
也许我的思考方式存在根本性的错误。任何帮助将不胜感激:)
问候,
提莫
【问题讨论】:
-
您能提供更多文件吗?尤其是 html 文件和控制器
-
控制器中除了
console.log($stateParams.serialNumber);之外什么都没有。我还没有开始实现更多功能。 -
通过更改映射,它将像'/identity/find/:serialNumber'一样工作
标签: javascript angularjs angular-ui-router