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 но если этого недостаточно, лучше всего использовать директиву.

Ссылка: Разница между onLoad и ng-init в угловых

Другие вопросы по тегам