gpt4 book ai didi

angularjs - Angular.js 如何将 $scope 注入(inject)到 $scope.on() 的指令() 中?

转载 作者:行者123 更新时间:2023-12-03 09:31:21 25 4
gpt4 key购买 nike

对于我写的指令,我如何在其中获取 $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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com