У меня проблемы с вложенными директивами в angularjs. Я хочу вызвать метод контроллера из директивы в другой директиве и пытаюсь передать ему аргументы, однако они не определены.
Я пытаюсь вызвать remove () с тремя аргументами из selected.html ниже. Он работал до того, как я ввел родительскую директиву (TVFilter.js). Может ли кто-нибудь предложить, что делать, чтобы передать их контроллеру?
Спасибо!
Код:
controller.js
$scope.remove = function(selectorToRemove, choicesArr, selectedArr){
console.log(selectorToRemove); //undefined
console.log(choicesArr); //undefined
console.log(selectedArr); //undefined
};
TVFilter.js
angular.module('app.directives').directive('televisionFilter', function(){
return{
restrict: 'A',
templateUrl: 'js/templates/television-filter.html',
scope: {
search: '=',
selectedBrand: '=',
submit: '&',
remove: '&'
}
};
});
selected.js
angular.module('app.directives').directive('selected', function(){
return{
restrict: 'A',
templateUrl: 'js/templates/selected.html',
scope:{
choicesArr: '=',
selectedArr: '=',
remove: '&'
}
};
});
list.html
<div television-filter search='televisionSearch' submit="submit()" selected-brand='selectedBrand' remove='remove(selectorToRemove, choicesArr, selectedArr)'></div>
TV-filter.html
<div selected selected-arr='search.selectedBrands' choices-arr='search.brands' remove='remove(selectorToRemove, choicesArr, selectedArr)'>
selected.html
<ul>
<li ng-repeat="selected in selectedArr" class="filter-autocomplete-list" ng-click="remove({selectorToRemove:selected, choicesArr:choicesArr,selectedArr:selectedArr})">
<span class="label label-default label-text">{{selected}}</span>
</li>
</ul>
link
обратный вызов, который я добавил plnkr.co/edit/g4n6IScxaqHwBvCn? предварительный просмотр - person charlietfl   schedule 30.10.2013