对于我写的指令,我如何在其中获取 $scope 以便我可以执行 $scope.$on()?我可以注入(inject) $rootScope,但我想使用 $scope 来捕捉广播。
angular.module('monitorApp')
.run(function($rootScope, $interval) {
$interval(function(){
$rootScope.$broadcast('ONE_SEC');
}, 1000);
});
angular.module('monitorApp')
.directive("countDown", [ 'sseHandler', function (sseHandler) {
console.log(sseHandler.broadcastStamp.cpuResult);
return {
scope: {
countFrom: "="
},
link: function(scope, $scope){
scope.countFrom = sseHandler.broadcastStamp.cpuResult;
$scope.$on('ONE_SEC', function(scope) {
sseHandler.broadcastStamp.cpuResult--;
});
}
}
}]);
更新 :使用范围注入(inject),我得到错误:
Error: [$injector:unpr] Unknown provider: $scopeProvider <- $scope <- countDownDirective
angular.module('monitorApp')
.directive("countDown", [ 'sseHandler', '$scope', function (sseHandler, $scope) {
console.log(sseHandler.broadcastStamp.cpuResult);
return {
scope: {
countFrom: "="
},
link: function(scope, $scope){
scope.countFrom = sseHandler.broadcastStamp.cpuResult;
$scope.$on('ONE_SEC', function(scope, $scope) {
sseHandler.broadcastStamp.cpuResult--;
});
}
}
}]);
最佳答案
您可以使用 scope.$on
, 你不需要尝试注入(inject) $scope
:
scope.$on('ONE_SEC', function() {
//do stuff
});
示例:http://jsfiddle.net/G2r7G/
关于angularjs - Angular.js 如何将 $scope 注入(inject)到 $scope.on() 的指令() 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24899698/