当我使用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/

10-16 00:10