【发布时间】:2016-08-02 11:51:34
【问题描述】:
我正在使用 angular-ui-router 开发一个 angularjs 应用程序。有一个页面列出了项目,可以按名称过滤,它显示在 /items?name=foo 之类的 url 中。还有一个页面,例如用户,您可以从该页面导航到项目页面,这些页面由用户过滤,例如 /items?userid=bar。
我通过在路由器配置中为同一页面设置两种状态来做到这一点:
.state('index.items', {
url: '/items?:name',
controller: 'ItemCtrl as ctrl',
templateUrl: 'item/index.html',
brParent: 'index.home'
})
.state('index.itemsOfUser', {
url: '/items?:userid&:name',
controller: 'ItemCtrl as ctrl',
templateUrl: 'item/index.html',
brParent: 'index.home'
})
我这样做是为了点击导航栏上的项目页面会转到未经过用户过滤的普通项目页面。
但是当从用户导航到项目页面时,用户 ID 出现在 url 中但在 $stateparams 用户 ID 未定义,我不明白为什么。
我不知道我的方法是否正确,我是 angular 新手。
【问题讨论】:
-
你看过
state.reloadOnSearch吗? ...顺便说一句,在不同的应用程序实体之间共享相同的状态并不是一个好方法,你不应该用相同的 url 声明许多状态... -
好吧,我也(试图)询问是否是为同一页面或具有相同 url 声明多个状态的好方法,或者我应该搜索/找出另一种解决方案。谢谢!
标签: javascript angularjs angular-ui-router