angularjs – Angular:来自服务的广播事件
发布时间:2020-12-17 07:09:04 所属栏目:安全 来源:网络整理
导读:我想以角度创建自定义事件.目标是该事件将由服务广播,并且必须在控制器中捕获. 我有我的服务: function doSomething() { // do something... $rootScope.$broadcast("bced"); $rootScope.$emit("emitted"); console.log('event');} 和我的控制器: $rootSco
|
我想以角度创建自定义事件.目标是该事件将由服务广播,并且必须在控制器中捕获.
我有我的服务: function doSomething() {
// do something...
$rootScope.$broadcast("bced");
$rootScope.$emit("emitted");
console.log('event');
}
和我的控制器: $rootScope.$on("bced",function(){
console.log("catched");
});
$rootScope.$on("emitted",function(){
console.log("catched");
});
$scope.$on("bced",function(){
console.log("catched");
});
$scope.$on("emitted",function(){
console.log("catched");
});
但我无法捕捉到控制器中的事件. 解决方法
查看工作演示:
var app = angular.module('core',[]);
app.service('SomeService',function($timeout,$rootScope){
this.generateEvent = function(){
$timeout(function(){
$rootScope.$broadcast('event:show',{some: 'data'});
},3000);
}
})
app.controller('MainController',function($scope,SomeService){
SomeService.generateEvent();
$scope.$on('event:show',function(event,data){
$scope.test = data.some;
})
})
<div ng-app="core" ng-controller="MainController">
{{test}}
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
