是否可以在不使用Angular中的指令的情况下设置ng-include的范围?

时间:2014-10-23 21:03:49

标签: angularjs

是否可以在不使用指令或ng-include的情况下在ng-repeat设置范围?

示例(适用于$scope: { startEvent: {…}, recentEvents: [{…}, {…}, …] }

<h4>Start</h4>
<!-- how do I make event = startEvent here? -->
<ng-include src="'event-template'"></ng-include>

<h4>Recent</h4>
<ol>
  <li data-ng-repeat="event in recentEvents">
    <ng-include src="'event-template'"></ng-include>
  </li>
</ol>

<script id="event-template" type="text/ng-template">
  <time datetime="{{event.sendDate}}">{{event.sendDate}}</time>
  <span>{{event.description}}</span>
</script>

首先要包括将范围event属性设置为startEvent - ng-repeat使用recentEvents为我做,但使用ng-repeat覆盖单个项目将是一个黑客。

显然我可以制定一个指令,但目前整件事只是一个小文件 使用指令和指令模板,它将扩展为三个,并且全部重用一个非常小的片段。

请注意,ng-init不起作用,因为它是在我想的不同时间执行的。

1 个答案:

答案 0 :(得分:1)

我已经看到用于此目的的ng-repeat="event in [startEvent]"方法。它还创建了一个子范围。

是的,这是一个黑客攻击:)

我创建了一个供我自己使用的指令,它为应用它的元素创建了一个独立的范围,特别是对于不保证特殊指令的ng-include个案例。

随意重复使用:plunker