Angular ui-router动态参数仅适用于特定子状态

时间:2017-06-16 18:07:44

标签: javascript angularjs angular-ui-router

UI-Router具有动态状态参数的概念,可以更新并且不会触发状态更改。我想知道是否有人知道如何将参数指定为仅一个特定子状态的动态参数。以前在ui-router v0.x中,您可以使用reloadOnSearch状态选项完成此操作。

所以例如

state('parentState', {
    abstract: true,
    url: '?{filter}',
    component: 'parentView',
})
.state('parentState.childOne', {
    abstract: false,
    url: '/childOne',
    views: {
        embeddedView: {
            component: 'childOne'
        }
    }
 })
 .state('parentState.childTwo', {
    abstract: false,
    url: '/childOne',
    views: {
        embeddedView: {
            component: 'childTwo'
        }
    }
 })

我希望'filter'对于childTwo是动态的,而对于childOne则是非动态的。

我试图做这样的事情,但似乎没有用。

 .state('parentState.childTwo', {
    abstract: false,
    url: '/childOne',
    params: {
        filter: {
            dynamic: true,   
        }
    }
    views: {
        embeddedView: {
            component: 'childTwo'
        }
    }
 })

1 个答案:

答案 0 :(得分:0)

我通过覆盖完整的参数定义来解决这个问题。 因此,如果过滤器参数在parentState

中定义如下
params: {
  filter: {
    dynamic: false
  }
}

你应该像在childTwo中一样动态地定义它。

在你的例子中它不起作用的原因很可能是你最初没有在parentState中定义参数。