【发布时间】:2015-09-01 07:49:04
【问题描述】:
我在我的 Angular Meteor 项目中使用 UI-Router。 当我在路由 /search 并想重新定位到 /search/:term(例如 /search/starwars)并在我的控制器中使用时
$state.go( 'private.search.feed', { term: 'starwars' } )
然后它在我的浏览器中的 URL 变成 /search/search/starwars 而不是 /search/starwars。
我的路线设置(我有 2 个布局,因此是抽象视图)
$stateProvider
# abstract views / layout
.state 'private',
url: ''
abstract: true
views:
'app':
templateUrl: 'client/views/layouts/privateLayout.html'
.state 'public',
url: ''
abstract: true
views:
'app':
templateUrl: 'client/views/layouts/publicLayout.html'
# end abstract views / layout
.state 'private.home',
url: '/'
views:
"container@private":
templateUrl: 'client/views/home/home.html'
.state 'private.search',
url: '/search'
views:
"container@private":
templateUrl: 'client/views/search/search.html'
controller: 'searchCtrl'
.state 'private.search.feed',
url: '/search/:term'
views:
"container@private":
templateUrl: 'client/views/search/feed/feed.html'
controller: 'searchCtrl'
当我改变路线时
.state 'private.searchFeed',
url: '/search/:term'
views:
"container@private":
templateUrl: 'client/views/search/feed/feed.html'
controller: 'searchCtrl'
并调用
$state.go( 'private.searchFeed', { term: 'starwars' } )
网址正确。
我认为我在第一个设置中定义了一个子状态,但我不明白为什么它会在 URL 中重复 search。
有什么想法吗?
【问题讨论】:
标签: javascript angularjs routing angular-ui-router angularjs-routing