ng-include在ng-repeat中

时间:2014-11-14 16:33:45

标签: angularjs controller ng-repeat

我有一个ng-repeat,里面有一个包含不同的html部分。

<div ng-repeat="item in feedItems">
  <div ng-include="'item.itemType.html'">
  </div>
</div>

例如,如果itemType = 40,则显示40.html,如果它显示80.html(部分的名称将被修复,但现在让它保持简单):

到目前为止一切顺利。我现在的问题是我需要继续使用部分html中的项目数据。此外,每个部分都有一个专用的控制器,但我相信通过在每个ng-include中添加ng-controller是可行的。

例如:我的40.html部分包含:

40.html:

<span>{{item.body.text}}</span>

80.html:

<h1>{{item.message.text}}</span>

我甚至不确定我想要达到的目标是否可行。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

ng-include创建一个子范围,该范围原型继承自ng-repeat中创建的范围。 80.html到{{item.message.text}}中的引用应该可以正常工作,因为在该子范围上没有定义“item”,因此它将跟随继承链并在父级上找到“item”(或父母的父母)范围。

原型继承有时会导致一些意想不到的结果,特别是当你处理原语而不是对象时;但是,你展示的例子似乎并不会与这些事情发生冲突。