2014-09-01 56 views
0

我正在使用ui.router来管理应用程序中某些页面的状态。当我改变状态时,我想让控制器重新加载范围内的对象。然而,我没有找到一种方法来配合国家的变化来做到这一点。如何在ui.router中更改状态时正确刷新范围

有没有办法挂钩到状态转换并激发我的角度资源请求?

这是我的两个状态转换,它们是分开的函数。

$state.transitionTo('myObj.current', {myObjId: $scope.myObj.myObjId}); 

$state.transitionTo('myObj.current.edit', {myObjId: $scope.myObj.myObjId}); 

当状态发生变化时,我想调用_getMyObjDetails函数。

var _getMyObjDetails = function (myObjId) { 
     var _myObj = MyObjService.get({myObjId: myObjId}); 
     _myObj.$promise.then(function (data) { 
     $scope.myObj = data; 
     ngProgress.complete(); 
     }); 
     return _myObj; 
    }; 

回答

1

如果我正确理解你,我认为你唯一需要做的就是听$ stateChangeStart事件。您可以将$ rootScope注入您的控制器,并使其如此:

$rootScope.$on('$stateChangeStart', function (event, next) { /* Your code... */ }); 

希望有所帮助。

+0

我结束了使用$ stateChangeSuccess,但这让我足够接近:)。谢谢! – zmanc 2014-09-02 17:03:52