Javascript Ng包括:访问子模型
我有一个模板,我想在我的应用程序的许多部分使用。 模板包含指定了模型的选择框 我通过Javascript Ng包括:访问子模型,javascript,angularjs,angularjs-scope,angularjs-ng-include,angularjs-ng-init,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="selec
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>
测试1
测试2
当然,它不起作用,因为ng include
创建了一个新的子作用域。
当我使用一个模型时(在像data.model
这样的模型中使用点
),它就可以工作了
但是,在这种特殊情况下,如何才能在不同的控制器中对不同的模型使用此模板呢?
此外,我需要动态地将处理程序附加到select
(例如ng change=“doSmth()”)
提前谢谢
供参考:
在这种情况下,最好使用指令。通过使用
onload
可以对ng include
进行一些控制,但如果这还不够,那么最好使用指令
参考资料:不幸的是,这与问题无关。问题的根源在于,无论使用的是ng init还是onLoad,ng include都会创建一个新的子作用域。所以我想知道如何处理它。你可以看到上面的砰砰声。我更新了。好的。我更了解你在追求什么。让我想一想也许这不是您要寻找的答案,但我会将模板推到指令中。这将使您能够更好地控制范围界定,并可能使其更易于维护。经过一些额外的挖掘,似乎没有办法让它与ng include一起工作,所以,是的,您是对的。指令似乎是实现预期目标的唯一可能途径。谢谢,好的。我重写了答案以反映这一点。谢谢。:)通常,如果您需要可重用性,最好创建一个指令。您可以完全控制范围。