aki*_*irk 39 angularjs angular-ui-router
我正在使用ui-router来表示我的AngularJS应用程序中的状态.在其中我想在不更改URL的情况下更改状态(基本上"详细视图"已更新,但这不应影响URL).
我使用的<a ui-sref="item.detail({id: item.id})">显示细节,但如果我指定像一个URL这仅适用url: "/detail-:id"于我$stateProvider.
在我看来,目前的状态只通过URL定义.
小智 46
这篇文章的新成员只是一个额外的信息:
在状态定义则params的声明已更改为params: { id: {} }从params: ['id']
所以要注意:)
资料来源:http://angular-ui.github.io/ui-router/site/#/api/ui.router.state.$stateProvider
iva*_*rni 41
感谢您的回答,它确实帮助了我正确的方向,但我想添加更完整的描述.
在我的具体问题中,有一个复杂的因素,因为我需要注入一个非URL参数的状态是一个子状态.这有点复杂的事情.
该params: ['id']部分在$stateProvider声明中如下:
$stateProvider.state('parent', {
url: '/:parentParam',
templateUrl: '...',
controller: '...'
}).
state('parent.child', {
params: ['parentParam','childParam'],
templateUrl: '...',
controller: '...'
});
Run Code Online (Sandbox Code Playgroud)
并且param名称连接到ui-sref属性,如下所示:
<a ui-sref=".child({ childParam: 'foo' })">
Run Code Online (Sandbox Code Playgroud)
问题是:
如果父状态也有URL参数,那么子进程 也需要在其
params数组中声明它.在上面的示例中,"parentParam"必须包含在childstate中.
如果不这样做,则在初始化应用程序时将抛出模块错误.在撰写本文时(v.0.2.10),最新版本至少是这样.
编辑
@gulsahkandemir指出这一点
州定义中的参数声明已更改为参数:来自参数的{id:{}}:['id']
从更改日志来看,这似乎是从v0.2.11开始的情况
params的详细信息可以在官方文档中找到
| 归档时间: |
|
| 查看次数: |
38855 次 |
| 最近记录: |