我正在尝试创建一个使用控制器中定义的外部函数的自定义组件,但我遇到了不同的问题。
示例:
我想使用控制器中定义的外部函数创建自定义输入,例如:
<custom-input type="text" ext-function="checkLength(this)"></custom-input>
<custom-input type="password" ext-function="checkPasswordIsStrong(this)"></custom-input>
问题在于我尝试了不同的方法来从指令中调用它,但根本没有成功,例如:
的指令: 的
link: function(scope, element, attrs, ctrl) {
if (typeof(attrs.extFunction) != "undefined") {
scope.$eval(attrs.extFunction);
}
}
的控制器 的
$scope.checkLength = function(element){
console.log('Checking length from: '+element);
}
$scope.checkPasswordIsStrong = function(element){
console.log('Checking password from: '+element);
}
EDITED
我终于明白了。
答案 0 :(得分:3)
例如,您可以使用&
绑定,例如:
scope: {
'fctn': '&extFunction'
},
这样它就是指令范围的一部分。请参阅:http://docs.angularjs.org/guide/directive