2014-01-23 3 views
11

경우에 따라 모델의 속성을 기반으로 노드에 다른 속성을 적용해야합니다.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> 

속성을 노드에 동적으로 적용하는 더 좋은 방법이 있습니까?

답변

13

나는 동적으로 속성을 지정할 수있는 지시문을 신속하게 만들었습니다. 당신이이 간단한 형태로 후 있습니다 원하는 효과를해야합니다 경우

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

는 잘 모르겠지만, 그것은 좋은 출발점이 될 수 있습니다. 이 ngRequired 활용하는 가장 좋은 것입니다

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

어쩌면 승이 병합/ng-css가 가지고있는 것과 같은 접근 방식이 나의 경우를 완성 할 것이다. 감사! – amcdnl

+3

불행히도이 접근법에서 사용 된 속성은 지시어가 될 수 없습니다. 잘 할 수는 있지만, 각도에 따라 컴파일되지는 않습니다. – parliament

+1

Note : 여기에'dyn-attrs'라고 쓰여 있고, Fiddle에서는'dyn-attr' – Agorreca

4

을이 경우 : 당신은 기본적으로 사용

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

을하고 그에 따라 모델을 설정

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