Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ng包括:访问子模型_Javascript_Angularjs_Angularjs Scope_Angularjs Ng Include_Angularjs Ng Init - Fatal编程技术网

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一起工作,所以,是的,您是对的。指令似乎是实现预期目标的唯一可能途径。谢谢,好的。我重写了答案以反映这一点。谢谢。:)通常,如果您需要可重用性,最好创建一个指令。您可以完全控制范围。