2014-05-13 3 views
0

나는 아이디어가 없습니다. 이 작품을 어떻게 얻을 수 있습니까?ng-directive의 부모 범위에 액세스

<option data-ng-repeat="item in statusList | 
    orderBy: EventStatus[$parent.ui_language]" value="{{item.EventStatus.id}}"> 
    {{item.EventStatus[ui_language]}} 
</option> 

나는 루트 범위에 ui_language 속성을 가지고 있으며 사용자가 사용하는 사용자 인터페이스 인터페이스에 따라 'fin'및 'eng'값을 갖습니다. EventStatus는 올바른 인덱스 (fin 및 eng)가있는 배열입니다. 위와 같이 ui_language에 접근하면 옵션 태그 (이 부분은 {{item.EventStatus[ui_language]}}) 안에있는 것으로 간주되지만 orderBy 섹션에서는 작동하지 않습니다. 여기 트릭은 무엇입니까?

답변

0

지시문은 거의 캡슐화되지 않은 코드 조각으로되어 있습니다. 그 이외의 값에 액세스하려고하면 캡슐화 원칙이 중단됩니다.

공식 격리 된 범위로 지시문을 설정하고 ui_language를 매개 변수로 전달하는 것이 좋습니다. isolating the scope of a directive.에있는 문서를 읽어보십시오.

당신은 기본적으로, 당신의 지시자 기능이 그런 짓을 할 :

scope: { 
    ui_language: '=' 
    }, 
+0

좋아. ng-repeat 지시문을 "상속"하려면 어떻게합니까? – makallio85

+0

내가 아는 한, AngularJS 지시문은 Java 클래스와 동일한 방식으로 "상속"하지 않습니다. 귀하의 지침에서 ng-repeat가 작동하지 않습니까? 또는 격리 된 범위를 추가해도 작동하지 못하게합니까? – JeffryHouser