UI-Router state.go回调状态变化

时间:2015-02-28 18:17:21

标签: angularjs angular-ui-router

成功调用state.go时需要回调,并设置警报消息。 在调用state.go之后,当前消息被推送到数组。 State.go调用控制器,包含警报消息的数组设置为空。

结果,不会显示警告信息。

控制器:

$scope.alerts = []; // empty array, initialized on startup
.....
// This could be any function
.success(function(data, status, headers, config, statusText){
     $state.go($state.current, {}, {reload : true});
     $scope.alerts.push({type : 'success', msg : status});
})
.error(function(error){
    console.log(error.message);
});

2 个答案:

答案 0 :(得分:93)

$state.go()会返回一个承诺。

做类似的事情:

$state.go('wherever', {whenever: 'whatever'}).then(function() {
  // Get in a spaceship and fly to Jupiter, or whatever your callback does.
});

答案 1 :(得分:7)

您可以使用状态更改侦听器。

 $rootScope
            .$on('$stateChangeSuccess',
                function (event, toState, toParams, fromState, fromParams) {
                    //show alert()
                });

请参阅State Change Events