我正在构建一个自定义验证器作为组件的指令,我正在尝试传递一个属性,但我无法检索该值,只是我正在调用的方法的字符串。
部分代码是:
指令:
return {
restrict: 'A',
require: 'ngModel',
link: (scope, element, attributes, ngModel) => {
const myAttrib = attributes.myValidation ;
console.log(myAttrib);
...
}
成分:
my-validation="$ctrl.getmyAtt()"
控制器:
getmyAtt() { return "blah"; }
所以在控制台中我得到“$ ctrl.getmyAtt()”而不是blah。 我怎么得到呀?
答案 0 :(得分:1)
您需要注入$parse
服务并使用它来获取传入的实际值。
$parse(attributes.myValidation)($scope);
$parse
文档here。
编辑:实际上,这对你的回调参数不起作用。相反,您需要存储该字符串,并在以后需要运行回调时将其作为javascript运行。
var returnValue = scope.$eval(myAttrib);