【发布时间】:2018-06-05 13:23:55
【问题描述】:
我的指令中有一个更新模型函数,我想从控制器调用它。如何从控制器访问指令功能?我可以调用模型更改,但为此我必须执行点击事件。
下面是我的代码:
<div ng-if="((individualDropdown && YesRadio) || FolderDropdown)">
<searchable-multiselect display-attr="infoMarketCodeWithName"
selected-items="formData.market"
all-items="allMarkets"
add-item="addMarketToList(item,allMarkets)"
remove-item="removeMarketFromList(item,allMarkets)"
ng-disable="NoRadio || NotSureRadio"
ng-model="formData.market" name="marketDropdown">
</searchable-multiselect>
</div>
指令代码和要调用的函数是updateSelectedItems
app.directive("searchableMultiselect", ['$timeout', '$filter', function($timeout, $filter) {
return {
templateUrl: "Templates/SearchableMultiselect.html",
require: 'ngModel',
restrict: "AE",
scope: {
displayAttr: "@", //one way binding & only expression
selectedItems: "=", //two way binding & expects model name
allItems: "=",
readOnly: "=",
addItem: "&",
removeItem: "&", //method binding
},
link: function(scope, element, attrs) {
element.bind('click', function(event) {
event.stopPropagation();
});
scope.updateSelectedItems = function(obj) {
console.log(scope.allMarkets);
//code goes here
}
}
])
【问题讨论】:
标签: angularjs angularjs-directive angularjs-controller