Динамические атрибуты с AngularJS
В некоторых случаях мне нужно применить различные атрибуты к node на основе свойств в моей модели.
Например, в одном случае мне нужно добавить "требуемый" тег, а в другом случае - нет. Я использую 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>
Есть ли лучший способ динамического применения атрибутов к узлам?
Ответы
Ответ 1
Я быстро создал директиву, которая позволяет динамически указывать атрибуты.
http://jsfiddle.net/HB7LU/1806/
Я не уверен, что он будет иметь желаемый эффект, который вам нужен в этой простой форме, но это может быть хорошей отправной точкой. В основном вы используете:
<div dyn-attrs="someModelArray"></div>
И установите свою модель соответственно:
$scope.someModelArray = [
{ attr: 'myattribute', value: '' },
{ attr: 'anotherattribute', value: 'val' }
];
Ответ 2
В этом случае было бы лучше использовать ngRequired:
<input class="form-control" type="text" ng-required="model.required" />