我想将成功消息从一个控制器发送到另一个控制器,并触发我的错误功能以显示我的成功消息。但是由于重定向而未显示成功消息。它在同一页面中有效,但在我要重定向时不起作用。需要帮助。 来自a.js tp b.js,我正在尝试这种情况
a.js
if(status == 0){
$state.go('b');
$rootScope.$emit('aSaySuccess');
}
b.htlml
<px-alert type="message.type" messages="message.content"
red-warning="flag" modal="message.modal" modal="message.title"></px-alert>
b.Js
function openTheError() {
$scope.flag = true;
$scope.message = {
content: [{
title: '',
msg: 'Succcess'
}],
type: 'success'
};
};
$rootScope.$on('aSaySuccess',function(){
openTheError();
});
答案 0 :(得分:1)
您可以传递参数$state.go("b", { isSuccess: true });
,如Sameer所评论。您可以使参数不显示在网址中。
状态go是异步的-但是它返回的promise会在发生过渡时解决。
$state.go('b').then(function() { $timeout(function() { $rootScope.$emit('aSaySuccess') }, 0); // Not sure but probably you need another timeout here });