我是AngularJS的新手。我想爲兩個指令使用一個模板。在交易中,第一條指令覆蓋第二條指令的行爲。但是我爲他們每個人指定了不同的控制器。我認爲原因是控制器將範圍隔離開來。我需要第一個控制器執行自己的filterChanged()函數,第二個控制器也執行它。與字段相同:蒙太奇,付費,取消和不活動。我嘗試操作範圍(true,'isolate',false,{}),transclude(true,false,'element'),範圍字段('@','=','&')。 'controllerAs'和'controllerBindTo'不適合我的任務,因爲我想這會拋出單獨的控制器文件。兩個指令,各自的控制器和相同的模板對UIU
幫我看看。手落下。
源代碼如下。
filter.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'
}
});
更新。
您的指令都對指令使用相同的控制器和相同的名稱。我不明白你想達到什麼,但我可能會從那裏開始。 – jpgrassi
Монтажи! Огонь!!! :) –
更正了directive2.js –