Javascript 具有重新加载事件的隔离作用域

Javascript 具有重新加载事件的隔离作用域,javascript,angularjs,Javascript,Angularjs,实际上,我正在创建一个指令,允许我生成一些图形,其中一些参数的格式如下: <div anomalie-graph idsite="{{site._id}}" sector="true" controlleur="" anomalie="" datedebut="dateDebutStats" datefin="dateFinStats"> 指令控制器的内部 现在,我已经将我的范围与 return {

实际上,我正在创建一个指令,允许我生成一些图形,其中一些参数的格式如下:

<div anomalie-graph idsite="{{site._id}}" sector="true" controlleur="" anomalie=""
                     datedebut="dateDebutStats"
                     datefin="dateFinStats">
指令控制器的内部

现在,我已经将我的范围与

return {
            restrict: 'EAC',
            templateUrl: 'tpl/directive/TraitementAnomalieGraphDirective.html',
            controller: controller,
            scope: {
                idsite: '@',
                sector: '@',
                controlleur: '@',
                anomalie: '@',
                datedebut: '@',
                datefin: '@'

            }
        };
我无法收听scope事件(因为它是孤立的),我不想使用$scope.$broadcast

在范围隔离之前,它对侦听器事件非常有效。问题是我不能在视图中多次使用此库

你能帮我吗

编辑:

这是我的密码:

模板:

<div class="row">
            <div class="col-md-4">
                <div anomalie-graph idsite="{{site._id}}" sector="true" controlleur="" anomalie=""
                     datedebut="dateDebutStats"
                     datefin="dateFinStats">
                </div>
            </div>

            <div class="col-md-4">
                <div anomalie-graph idsite="{{site._id}}" sector="" controlleur="true" anomalie=""
                     datedebut="dateDebutStats"
                     datefin="dateFinStats">
                </div>
            </div>


        </div>

您正在从何处广播/发射您试图在指令控制器中侦听的事件“reload”。在父控制器中(父视图加载指令),使用$scope.$broadcast或$scope.$emit?$scope.$emit('reload'),我建议您使用“$rootScope.$emit”而不是$scope.$emit或$scope.$broadcast,因为$rootScope.$emit从根目录向下移动以跟踪侦听器,它将覆盖您的情况。
return {
            restrict: 'EAC',
            templateUrl: 'tpl/directive/TraitementAnomalieGraphDirective.html',
            controller: controller,
            scope: {
                idsite: '@',
                sector: '@',
                controlleur: '@',
                anomalie: '@',
                datedebut: '@',
                datefin: '@'

            }
        };
<div class="row">
            <div class="col-md-4">
                <div anomalie-graph idsite="{{site._id}}" sector="true" controlleur="" anomalie=""
                     datedebut="dateDebutStats"
                     datefin="dateFinStats">
                </div>
            </div>

            <div class="col-md-4">
                <div anomalie-graph idsite="{{site._id}}" sector="" controlleur="true" anomalie=""
                     datedebut="dateDebutStats"
                     datefin="dateFinStats">
                </div>
            </div>


        </div>
    var controller = ['$scope', '$attrs', 'srv_traitementsVoirie', function ($scope, $attrs, srv_traitementsVoirie) {


        var load = function () {
            // code of reload
        };

        load();

        $scope.$on('reload', function () {
            load();
        });

    }];

    return {
        restrict: 'EAC',
        templateUrl: 'tpl/directive/TraitementAnomalieGraphDirective.html',
        controller: controller,
        scope: {
            idsite: '@',
            sector: '@',
            controlleur: '@',
            anomalie: '@',
            datedebut: '=',
            datefin: '='

        }
    };
});