如何将动态属性传递给自定义验证器

时间:2018-03-28 15:52:42

标签: angularjs angularjs-directive custom-validators

我正在构建一个自定义验证器作为组件的指令,我正在尝试传递一个属性,但我无法检索该值,只是我正在调用的方法的字符串。

部分代码是:

指令:

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。 我怎么得到呀?

1 个答案:

答案 0 :(得分:1)

您需要注入$parse服务并使用它来获取传入的实际值。

$parse(attributes.myValidation)($scope);

$parse文档here

编辑:实际上,这对你的回调参数不起作用。相反,您需要存储该字符串,并在以后需要运行回调时将其作为javascript运行。

var returnValue = scope.$eval(myAttrib);