ui中没有URL的状态参数

我正在使用ui-router在我的AngularJS应用程序中表示状态。 其中我想更改状态而不更改URL(基本上“更新详细视图”,但不应该影响URL)。

我使用<a ui-sref="item.detail({id: item.id})">来显示详细信息,但只有在我的$stateProvider指定URL(如url: "/detail-:id" $stateProvider

在我看来,目前的状态只能通过URL来定义。


感谢您的回答,它确实帮助我朝着正确的方向发展,但我只想添加更完整的说明。

在我的具体问题中有一个复杂的因素,因为我需要注入一个非URL参数的状态是一个子状态。 稍微复杂的事情。

params: ['id']部分进入$stateProvider声明中,如下所示:

$stateProvider.state('parent', {
    url: '/:parentParam',
    templateUrl: '...',
    controller: '...'
}).
state('parent.child', {
    params: ['parentParam','childParam'],
    templateUrl: '...',
    controller: '...'
});

并且param名称连接到ui-sref属性,如下所示:

<a ui-sref=".child({ childParam: 'foo' })">

问题在于:

如果父状态也有URL参数,那么孩子也需要在其params数组中声明该params 。 在上面的例子中,“parentParam”必须包含在childstate中。

如果你不这样做,那么应用程序初始化时将会引发模块错误。 在撰写本文时,最新版本(v.0.2.10)至少如此。

编辑

@gulsahkandemir指出

在州定义中的参数声明已经变成params:{'id'] params:{id:{}}

从更新日志来看,这似乎是从v0.2.11开始的情况

参数的细节可以在官方文档中找到


只是这个职位的新来者的附加信息:

在州定义中的参数声明已经变成params: { id: {} } params: ['id'] params: { id: {} }

所以要注意:)

来源:http://angular-ui.github.io/ui-router/site/#/api/ui.router.state.$stateProvider


我现在想通了,你需要使用params: ['id']属性来让密钥在不使用URL时不被剥离。

链接地址: http://www.djcxy.com/p/77943.html

上一篇: Parameters for states without URLs in ui

下一篇: Reloading current state