当我使用ng-include时,无法通过在include内设置ng-controller来更改所使用的控制器。包含对象“看到”了控制器。如果我在调用div的include中定义控制器,它将起作用。
例:
我有一个包括:
<div ng-controller="baseController">
<div ng-include="other.html"></div>
</div>
other.html定义为:
<div ng-controller="subController">
<ul>
<li ng-repeat="address in addresses">
{{ address.name }}
</li>
</ul>
</div>
在此版本中,该地址不会显示任何地址,但是如果我将代码更改为:
<div ng-controller="baseController" ng-controller="subController">
<div ng-include="other.html"></div>
</div>
other.html定义为:
<div >
<ul>
<li ng-repeat="address in addresses">
{{ address.name }}
</li>
</ul>
</div>
一切正常,并显示地址。
为什么?
问候
贾普·范德·克里夫特
最佳答案
请找到plunkr
<div ng-controller="baseController">
<div ng-include src="'other.html'"></div>
</div>
如果将src作为字符串传递,则需要用内引号引起来。通常,您将对永不更改的文件执行此操作。当您可能需要更改文件时,最好将值设置为Angular变量并在标记中引用它。
例如:
<div ng-include src="templatePath"></div>
&脚本代码是
$scope.templatePath = "other.html";
关于javascript - 将其他ng-controller与ng-include一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22184434/