是否可以在不使用指令或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
不起作用,因为它是在我想的不同时间执行的。
答案 0 :(得分:1)
我已经看到用于此目的的ng-repeat="event in [startEvent]"
方法。它还创建了一个子范围。
是的,这是一个黑客攻击:)
我创建了一个供我自己使用的指令,它为应用它的元素创建了一个独立的范围,特别是对于不保证特殊指令的ng-include
个案例。
随意重复使用:plunker