Ng-include:访问子模型

时间:2014-10-18 16:06:47

标签: javascript angularjs angularjs-scope angularjs-ng-include angularjs-ng-init

我有一个模板,我想在我的应用程序的许多部分使用。 模板包含已分配模型的选择框。

我通过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 =&#34; doSmth()&#34;)。

提前致谢。

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

1 个答案:

答案 0 :(得分:1)

在这种情况下,最好使用指令代替。您可以使用ng-include控制onload,但如果这还不够,那么使用指令是最好的选择。

参考:Difference between onLoad and ng-init in angular