1

내 응용 프로그램의 여러 부분에서 사용하려는 템플릿이 있습니다. 템플릿에 모델이 할당 된 선택 상자가 있습니다.Ng-include : 자식 모델에 액세스

ng-include의 방법으로 템플릿을 포함합니다.

<span ng-include="'templateWorking'" ng-init="selectModel=data.field"></span> 

다음 템플릿

는 : ng-include가 새 자식 범위를 작성하기

물론
<script type="text/ng-template" id="templateWorking"> 
    <select ng-model="selectModel"> 
    <option value="Test1">Test1</option> 
    <option value="Test2">Test2</option> 
</select> 

, 그것은 작동하지 않습니다. 하나의 모델 (data.model과 같은 모델에서 점 . 사용)을 사용할 때 작동하게 할 수 있습니다.

하지만이 특별한 경우 어떻게하면 다른 컨트롤러에서 다른 템플릿으로이 템플릿을 사용할 수 있습니까? 게다가 동적으로 핸들러를 select에 연결해야합니다 (예 : ng-change = "doSmth()").

미리 감사드립니다. 참고로

: http://plnkr.co/edit/NiLQyVQGb6X1mA0sVvA1?p=preview

+0

일반적으로, 그것은 지침을 작성하는 것이 가장 좋습니다. 범위를 완전히 제어 할 수 있습니다. –

답변

1

는이 경우 대신 지시어를 사용하는 것이 가장이었다. onload을 사용하여 ng-include을 일부 제어 할 수 있지만 충분하지 않은 경우 지시어를 사용하는 것이 가장 좋습니다.

참조 : 당신이 재사용 성을 필요로하는 경우 Difference between onLoad and ng-init in angular

+0

불행히도이 문제와 관련이 없습니다. 문제의 근원은 ng-init이 ng-init 또는 onLoad와 관계없이 새로운 하위 범위를 만드는 사실입니다. 그래서 어떻게 처리해야하는지 궁금합니다. 위의 덩어리를 볼 수 있습니다. 나는 그것을 새롭게했다. – Sray

+0

확인. 나는 네가 뭘하는지 잘 이해한다. 조금 생각해 봅시다. :) –

+0

어쩌면 이것은 당신이 찾고있는 대답이 아니지만 지시문 안에 템플릿을 밀어 넣을 것입니다. 그렇게하면 범위 지정을 제어 할 수있게되어 더 유지 관리가 가능해질 수 있습니다. –