Angularjs 广播未触发on功能在控制器之间传递数据

Angularjs 广播未触发on功能在控制器之间传递数据,angularjs,controller,routes,broadcast,watch,Angularjs,Controller,Routes,Broadcast,Watch,我正在执行添加操作,成功后,我将路由到我的主页。两者都有各自关联的控制器。我正在广播我的成功信息,并希望on功能将收到呼叫 carrierFactory.addCarrier(data).then(function(response){ $scope.CarrierDetails.reportSuccessMsg=response.data.reportSuccessMsg; $rootScope.$broadcast("SuccessMessage", response.data.repor

我正在执行添加操作,成功后,我将路由到我的主页。两者都有各自关联的控制器。我正在广播我的成功信息,并希望on功能将收到呼叫

carrierFactory.addCarrier(data).then(function(response){
$scope.CarrierDetails.reportSuccessMsg=response.data.reportSuccessMsg; 
$rootScope.$broadcast("SuccessMessage", response.data.reportSuccessMsg);
alert(response.data.reportSuccessMsg);
$location.path("/");
然后在另一个与thr routed page关联的控制器中,我正在执行

$scope.$on("SuccessMessage", function(event, message) {
         $scope.reportSuccessMsg = message;
         alert("asdasD");
       });

它不起作用,所以它应该是错误的,你能建议一个更好的方法吗。谢谢你的帮助。我是个新手

您应该将侦听器添加到$rootScope:

$rootScope.$on("SuccessMessage", function(event, message) {
     $scope.reportSuccessMsg = message;
     alert("asdasD");
});

尝试使用$emit而不是$broadcast,因为这两个视图不是嵌套视图。我想我是想和大家分享这个日期。无论如何,我会尽力让你知道结果。谢谢$emti不工作。对不起的。无论如何,谢谢。嗨,是的,我试过使用rootScope和scope,但是很抱歉,它不起作用。我不知道我做错了什么你能创建jsfild吗?