虽然设置了属性,但不会触发验证

时间:2015-07-26 17:21:35

标签: angularjs

我的指示如下:

directive('setAttribute', function () {
        return {
            restrict: 'A',
            require: 'ngModel',
            link: function ($scope, element, attrs, ctrl) {
                var prop = $scope.$eval(attrs.setAttribute);

                prop.validationRulesToApply.forEach(function (rule) {
                    attrs.$set(rule.name, rule.val);

                });
            }
        }
    });

您可以这样动态设置属性。尽管属性设置正确(我可以在最终的HTML中看到它们),但不会触发验证。当我用花括号输出$ error对象时 - 它是空的!设置属性时,我是否会遗漏一些重要内容?

1 个答案:

答案 0 :(得分:0)

您是否尝试在setAttribute指令中添加这些验证规则?

如果是这样,你的做法是错误的。当你使用$ set时,它只是向HTMl添加属性,但不编译它们。 因此,你不会得到你想要的结果。

您需要将其添加到预编译中 我认为solution可以帮到你。

Add directives from directive in AngularJS