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

标签 angularjs

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

相关文章:

javascript - AngularJs 不显示从 Controller 填充的列表

javascript - Angular -Js $http.post 在 Django 中不起作用

javascript - 在 grails 项目中使用 jquery 2.2.2

javascript - 如何调整javascript正则表达式

javascript - AngularJS:浏览器刷新时 cookies 失败

javascript - 如何在与 Webpack 捆绑在一起的 Angular 1 应用程序中使用 Bootstrap

node.js - 用于目录多语言应用程序的 Angular SEO

javascript - 如何从 php 向 Angular $http 服务抛出异常

javascript - 如何在 Laravel 中限制与管理相关的 AngularJs Controller ?

javascript - 如何更改 angularJS 中的观察者顺序?