Ng-include: доступ к дочерним моделям
У меня есть шаблон, который я хочу использовать во многих частях моего приложения. Шаблон содержит поле выбора с назначенной моделью.
Я включаю шаблон с помощью ng-include
,
<span ng-include="'templateWorking'" ng-init="selectModel=data.field"></span>
а затем в шаблоне:
<script type="text/ng-template" id="templateWorking">
<select ng-model="selectModel">
<option value="Test1">Test1</option>
<option value="Test2">Test2</option>
</select>
Конечно, это не работает, так как ng-include
создает новую дочернюю область. Можно заставить его работать, когда я использую одну модель (используя точку .
в модели, как data.model
).
Но как это возможно в данном конкретном случае, чтобы я мог использовать этот шаблон с разными моделями на разных контроллерах? Кроме того, мне нужно динамически подключить обработчик к select
(например, ng-change="doSmth()").
Заранее спасибо.
Для справки: http://plnkr.co/edit/NiLQyVQGb6X1mA0sVvA1?p=preview
1 ответ
В этом случае лучше было использовать директиву. Вы можете получить некоторый контроль над ng-include
используя onload
но если этого недостаточно, лучше всего использовать директиву.