2013-11-15 3 views
6

내가 무엇을하려고하는지 설명하겠습니다. 제공된 데이터 배열 및 구성 객체를 기반으로 테이블을 작성하기 위해 실제로 동적 인 ng 지시문을 작성합니다. 내가 알고 싶은 것은 범위에있는 객체를 기반으로 속성을 동적으로 할당하는 방법입니다. 의 내가 좋아하는 범위에서 어딘가에 객체가 있다고 가정 해 보자 : 그래서 어딘가에 내 템플릿에AngularJS : 개체를 HTML 특성에 매핑하는 방법

$scope.inputs.myInput = { 
    type : "number", 
    size : 3, 
    min : 0, 
    ... 
} 

및 것은

<tr><td>other stuff</td><td><input {{assign the attributes somehow}} /></td></tr> 

이며, 그 결과는 다음과 같습니다

<tr><td>other stuff</td><td><input type='number' size='3' min='0' ... /></td></tr> 

어떻게 든이인가 가능한?

내가 시도한 것 : 현재, 모든 행의 입력 배열에있는 각 항목에 대한 입력을 만들었고 type={{type}}으로 유형을 할당 할 수 있지만 입력 요소의 유형에 따라 html 속성이 다를 수 있습니다. "하드 코딩 된"방법으로 속성을 할당하는 것은 지저분하고 여기에서 붙어 있습니다.

피드백에 대해 미리 감사드립니다.

답변

5

Here's a plunk for you :

.directive('dynamicAttributes', function($parse){ 
    return function($scope, $element, $attrs) { 
    var attrs = $parse($attrs.dynamicAttributes)($scope); 
    for (var attrName in attrs) { 
     $attrs.$set(attrName, attrs[attrName]); 
    } 
    } 
}) 

그냥 dynamic-attributes 속성에 속성 이름 - 값 쌍 개체를 전달하고 지시는 당신을 위해 그것을 추가 할 것입니다 :

dynamic-attributes="{style:'background: red;height:200px;', class: 'red'}" 

를 귀하의 경우에는 뭔가 것 이렇게 말하십시오 :

+0

나는 그것을 지금 시도 할 것입니다! 고맙습니다. – kuncajs

+0

완벽하고 정확하게 내가 필요한 것 – kuncajs

관련 문제