Angularjs 两个指令,各自的一对控制器和相同的templateUrl

Angularjs 两个指令,各自的一对控制器和相同的templateUrl,angularjs,Angularjs,我是AngularJS的新手。我想对两个指令使用一个模板。在deal中,第一个指令覆盖第二个指令的行为。但我已经为它们中的每一个指定了不同的控制器。我认为原因是控制器隔离了作用域。我需要第一个控制器执行它自己的filterChanged()函数,第二个控制器也是如此。与字段相同:蒙太奇、支付、取消和不活动。我试图操纵作用域(true,'isolate',false,{})、transclude(true,false,'element')、作用域字段('@','=','&')controllerA

我是AngularJS的新手。我想对两个指令使用一个模板。在deal中,第一个指令覆盖第二个指令的行为。但我已经为它们中的每一个指定了不同的控制器。我认为原因是控制器隔离了作用域。我需要第一个控制器执行它自己的filterChanged()函数,第二个控制器也是如此。与字段相同:蒙太奇、支付、取消和不活动。我试图操纵作用域(true,'isolate',false,{})、transclude(true,false,'element')、作用域字段('@','=','&')controllerAs和controllerBindTo不适合我的任务,因为我想抛出单独的控制器文件

请帮帮我。手落下

下面是源代码

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>
directive2.js

angular.module('qualityControl')
.directive('usersFilterDirective', function() {
    return {
        templateUrl: '../templates/pages/quality/filter.html',
        controller: 'usersFilterController'
    }
});

已更新。

添加带“&”的变量,这是函数声明

.directive('requiresFilterDirective', function () {
        return {
            restrict: 'AE',
            scope: {
                functionToCall: '&',
                someData: '='
            },
            templateUrl: '../templates/pages/quality/filter.html',
            link: function (scope, elem, attrs) {
                scope.functionToCall();
                console.log('scope.someData', scope.someData);
            }
        }
    })
用法:

<requires-filter-directive function-to-call="myFunctOne()" some-data="yourJsonObject"></requires-filter-directive>

<requires-filter-directive function-to-call="myFunctTwo()" some-data="yourJsonObject"></requires-filter-directive>

您的两个指令都使用相同的控制器和相同的指令名称。我不明白你想要达到什么目标,但我可能会从那里开始。жжжжжжжжжж!Огонь !!! :)更正的directive2.js
<requires-filter-directive function-to-call="myFunctOne()" some-data="yourJsonObject"></requires-filter-directive>

<requires-filter-directive function-to-call="myFunctTwo()" some-data="yourJsonObject"></requires-filter-directive>
$scope.myFunctOne = function() {
    alert("111")
};

$scope.myFunctTwo = function() {
    alert("222")
};

$scope.yourJsonObject = {'aaa':123};