Ответ 1
$state.go()
возвращает обещание.
Итак, сделайте что-нибудь вроде:
$state.go('wherever', {whenever: 'whatever'}).then(function() {
// Get in a spaceship and fly to Jupiter, or whatever your callback does.
});
Мне нужен обратный вызов, когда 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);
});
$state.go()
возвращает обещание.
Итак, сделайте что-нибудь вроде:
$state.go('wherever', {whenever: 'whatever'}).then(function() {
// Get in a spaceship and fly to Jupiter, or whatever your callback does.
});
Вы можете использовать прослушиватель изменений состояния.
$rootScope
.$on('$stateChangeSuccess',
function (event, toState, toParams, fromState, fromParams) {
//show alert()
});