답변:
ngAttr
지시문은 공식 문서에 소개 된 것처럼 여기에서 완전히 도움이 될 수 있습니다.
https://docs.angularjs.org/guide/interpolation#-ngattr-for-binding-to-arbitrary-attributes
예를 들어, 색인을 포함하도록 요소 의 id
속성 값 을 설정하려면 div
뷰 단편에
<div ng-attr-id="{{ 'object-' + myScopeObject.index }}"></div>
보간되는
<div id="object-1"></div>
myScopeObject
의 속성 이라고 가정하자 scope
. docs.angularjs.org/guide/controller 도 참조하십시오 . 그것이 당신에게 충분합니까, 아니면 더 자세히 설명할까요?
<div id="{{ 'object' + index }}">
및 <div ng-attr-id="{{ 'object' + index }}">
? 문서에서 앞에 붙는 ng-attr-
것은 요소가 아닌 비표준 요소 인 경우를 돕는 것입니다 <div>
. 내가 문서를 제대로 읽고 있습니까?
이 일은 저에게 아주 효과적이었습니다.
<div id="{{ 'object-' + $index }}"></div>
ng-attr-id
상황의 0 %에서 유리합니다. 예제가 없으므로 제공 할 수 없습니다.
ng-attr-id
방법은 원시 NG 식을 (예를 들어, 유효한 HTML 속성에 렌더링되지 않습니다 있도록하는 것입니다 id
, label
등). 이것은 '정크'를 읽는 다운 스트림 사용을 중지하는 것입니다 (예 : 렌더링이 완료되기 전 또는 js 충돌 후)
이 동작을 달성하는 더 우아한 방법은 다음과 같습니다.
<div id="{{ 'object-' + myScopeObject.index }}"></div>
내 구현을 위해 ng-repeat의 각 입력 요소에 레이블을 연결할 고유 ID가 필요했습니다. 따라서 myScopeObjects에 포함 된 객체 배열의 경우 다음을 수행 할 수 있습니다.
<div ng-repeat="object in myScopeObject">
<input id="{{object.name + 'Checkbox'}}" type="checkbox">
<label for="{{object.name + 'Checkbox'}}">{{object.name}}</label>
</div>
이와 같이 콘텐츠를 동적으로 추가 할 때 고유 한 ID를 즉석에서 생성 할 수 있으면 매우 유용 할 수 있습니다.
다만 <input id="field_name_{{$index}}" />
이 구문을 사용하는 경우 :
<div ng-attr-id="{{ 'object-' + myScopeObject.index }}"></div>
Angular는 다음과 같이 렌더링합니다 :
<div ng-id="object-1"></div>
그러나이 구문은 다음과 같습니다.
<div id="{{ 'object-' + $index }}"></div>
다음과 같은 것을 생성합니다 :
<div id="object-1"></div>
ng-attr-id
만들어야 ng-id
합니까? 그건 틀렸어요. 누가 이것을지지하는지 궁금합니다.
myScopeObject
에서 왔습니까? 어디서 정의해야합니까?