我尝试添加属性,例如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