设置ui-router状态

时间:2014-10-15 20:18:06

标签: angularjs angular-ui-router

我开始使用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更改时重新加载控制器和视图,我想保持相同的控制器,相同的视图,但是要检测状态更改。所以它第一次到达状态 - 加载控制器,下次状态改变 - 保持相同的控制器,相同的视图,并在控制器中检测新的路径参数。我该怎么做?

1 个答案:

答案 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. 
   }
})