1

我尝试添加属性,例如ng-required="true"ng-pattern="/^(d)+$/"动态,因为 DOM 是由 Angular 编译的。当我检查元素时,它们被添加并出现在元素上,但是它们似乎没有被初始化并且什么也不做。

我使用下面的指令执行此操作,在inp编译时将对象从模板传递到指令范围,该inp对象包含有关如何呈现输入的所有数据。

.directive ('addConstraints', function() {
    return {
        restrict: 'A',
        scope : {
          inp : '=inp'
        },
        link : function(scope, ele, attr)   {

                if(!scope.inp || !scope.inp.attributes) return;
                var attrs = scope.inp.attributes;

                for(var i = 0; i < attrs.length; i++) {
                ele.attr(attrs[i].attr, attrs[i].val);
            }

        }
}});

利用:

<div ng-controller="someController">

<div ng-repeat="inp in inputs">

<input ng-if="inp.type == 'text'" add-constraints inp="inp" type="text">

</div>

</div>

使用 angularjs 1.5.8

4

0 回答 0