我开始使用ui-router,但仍然无法理解它。我想我已经想过如何为简单案例设置状态,但却无法知道如何做到这一点。
我需要的是拥有管理#/tables/table1
,#/tables/table2
,#/tables/table3
等网址的状态。
我想到了这个:
<ui-view="container"/>
$stateProvider
.state 'tables',
url: '/tables/:table'
views: 'container':
templateUrl: 'views/table-view.html'
controller: 'tableCtrl'
所以这种方法有用,但我现在需要的是每当url更改时重新加载控制器和视图,我想保持相同的控制器,相同的视图,但是要检测状态更改。所以它第一次到达状态 - 加载控制器,下次状态改变 - 保持相同的控制器,相同的视图,并在控制器中检测新的路径参数。我该怎么做?
答案 0 :(得分:0)
在控制器中使用listen on $ StateChange
$scope.$on('$stateChangeStart',
function(event, toState, toParams, fromState, fromParams){
if (toState === fromState && toState.name === "container") {
event.preventDefault();
// get the params from the toParams that you want.
}
})