我正在开发一个使用angular-ui-router的angularjs应用程序。有一个列出项目的页面,可以通过名称进行筛选,并且它显示在URL中,如/items?name = foo。还有一个页面,例如用户,从那里你可以导航到项目页面,并按用户过滤,如/items?userid = bar。AngularJS一个多页状态页面
我这样做,通过在路由器配置在同一页的两种状态:
.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'
})
我这样做,所以点击导航条上的项目页转到正常的项目页面而不是用户过滤。
但是,当从用户导航到项目页面时,userid出现在url中,但在$ stateparams userid中是未定义的,我不明白为什么。
我不知道我的方法是否正确,我是新的角度。
你看看'state.reloadOnSearch'? ...顺便说一下,不是一个好方法在不同的应用程序实体之间共享相同的状态,你不应该声明许多状态具有相同的url ... – Hitmands
嗯,我也(试图)问是否是一种好方法为相同页面或相同网址声明多个州,或者我应该搜索/找出另一个解决方案。谢谢! – nolley