尝试在指令中调用函数:
angular.module('abc').directive('autocomp', function () {
return {
replace: true,
scope: true,
controller: 'Controller',
controllerAs: 'ctrl',
srchtxt: '@',
scope: {
src: '&'
},
templateUrl: '/dom/abc/auto.html',
link: function (scope, element, attrs) {
scope.$watch('srchtxt', function () {
scope.src(scope.srchtxt});
});
}
}
});
=============================================== =========================== 控制器内部的方法:
function search(srchtxt) {
console.log('srchText:', srchText);
}
=============================================== ============================ HTML:
<abc src="rc.search()"></abc>
我正在为md-autocomplete控件编写一个指令,该方法名称可以作为HTML pagee中的属性传递给哪个,然后尝试在指令中执行该方法。 在控件中的textchange上有一个监视器,我在其中调用要执行的方法(scope.src(scope.srchText)))
当我在自动完成控件中输入内容时,我收到以下错误: TypeError:不能在&#39;中使用&#39;运营商搜索&#39; rc&#39;在g
任何人都可以建议我错过了什么或做错了吗?
答案 0 :(得分:0)
使用&
将控制器方法绑定到指令时,必须在html中声明确切的参数,如
<sml-auto-complete datasrc="cr.query(searchText)"></sml-auto-complete>
// ^
然后,当您从指令调用此方法时,您需要将参数作为对象传递,如
scope.$watch('searchText', function () {
scope.datasrc({searchText: scope.searchText}); //not simply scope.datasrc(scope.searchText)
});
选中此demo