2014-09-01 85 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