AngularJS的动态属性

时间:2014-01-23 00:40:03

标签: angularjs

在某些情况下,我需要根据模型中的属性将不同的属性应用于节点。

例如,在一种情况下,我需要添加“必需”标签,而在另一种情况下则不需要。我一直在使用ng-if和不同的分支来完成这个任务,但案件很快就会失控。

 <div ng-if="model.required">
    <input class="form-control"
           type="text"
           required 
           ng-model="model" />
 </div>
 <div ng-if="!model.required">

    // as different options arise,
    // i have more forks for each attribute combo

    <input class="form-control"
           type="text"
           ng-model="model" />
 </div>

是否有更好的方法将属性动态应用于节点?

2 个答案:

答案 0 :(得分:13)

我已经快速创建了一个允许您动态指定属性的指令。

http://jsfiddle.net/HB7LU/1806/

我不确定它是否会以这种简单的形式产生你想要的效果,但它可能是一个很好的起点。你基本上使用:

<div dyn-attrs="someModelArray"></div>

并相应地设置模型:

$scope.someModelArray = [
    { attr: 'myattribute', value: '' },
    { attr: 'anotherattribute', value: 'val' }
];

答案 1 :(得分:5)

在这种情况下,最好使用ngRequired:

<input class="form-control" type="text" ng-required="model.required" />