当我使用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>
一切正常,地址也会显示出来。
为什么?
此致
Jaap van der Kreeft
答案 0 :(得分:3)
请找到plunkr
<div ng-controller="baseController">
<div ng-include src="'other.html'"></div>
</div>
如果将src作为字符串传递,则需要内部引号。您通常会为永远不会更改的文件执行此操作。当您可能需要更改文件时,最好将值设置为Angular变量并在标记中引用该值。
EX:
<div ng-include src="templatePath"></div>
&安培;脚本代码是
$scope.templatePath = "other.html";
答案 1 :(得分:0)
试试这个:
<div ng-controller="baseController">
<div ng-include="'other.html'"></div>
</div>