【发布时间】:2016-03-07 22:24:01
【问题描述】:
我是 AngularJS 的新手。我想为两个指令使用一个模板。在交易中,第一个指令覆盖了第二个指令的行为。但是我为它们中的每一个指定了不同的控制器。我认为原因是控制器隔离了范围。我需要第一个控制器执行它自己的 filterChanged() 函数,第二个控制器也是如此。与字段相同:蒙太奇、支付、取消和不活动。我试图操纵范围(true,'isolate',false,{}),transclude(true,false,'element'),范围字段('@','=','&')。 'controllerAs' 和 'controllerBindTo' 不适合我的任务,因为我想抛出单独的控制器文件。
请帮帮我。手落下。
源代码如下。
过滤器.html
<div class="filter">
<p class="text-center"><b ng-bind="::title"></b></p>
<div class="contact-item-requires-filter">
<div class="contact-item-require">
<input id="contact-item-montage-filter" class="contact-item-require-montage" type="checkbox"
ng-model="filter.montage"
ng-change="filterChanged()">
<label title="Монтажи" for="contact-item-montage-filter"></label>
</div>
</div>
directive1.js
angular.module('qualityControl')
.directive('requiresFilterDirective', function() {
return {
templateUrl: '../templates/pages/quality/filter.html',
controller: 'requiresFilterController'
}
});
directive2.js
angular.module('qualityControl')
.directive('usersFilterDirective', function() {
return {
templateUrl: '../templates/pages/quality/filter.html',
controller: 'usersFilterController'
}
});
已更新。
【问题讨论】:
-
您的两个指令都使用相同的控制器和相同的指令名称。我不明白你想要实现什么,但我可能会从那里开始。
-
Монтажи! Огонь !!! :)
-
更正指令2.js
标签: angularjs