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: '='
}
};
});