我有一个指令的模板,里面有一个ng repeat指令,看起来像这样:
template: "<table ng-repeat='num in seq track by $index'><tr><td>{{$index+1}}</td><td>{{num}}</td></tr></table>"
$scope.seq是一个数字数组,直到索引131,在索引131处我推送了字符串"<span class='stayTuned'>stay tuned!</span>"
。
当然,这个字符串是按原样推送的,不是DOM元素。将这个html字符串编译成DOM元素,然后在列表的上下文中"附加"它,最好的方法是什么?
以下是我如何理解你的问题,如果我换一种说法:
如果列表元素的数量超过131,则如何创建具有ng repeat和only的列表,并附加
<span>
?
如果是这样,那么$compile就不需要任何花哨的东西——只需在模板中使用现有Angular的指令ng-if
和过滤器limitTo
。
模板(多行可读):
<table ng-repeat='num in seq | limitTo: 131 track by $index'>
<tr>
<td>{{$index+1}}</td>
<td>{{num}}</td>
</tr>
</table>
<span ng-if="seq.length > 131" class='stayTuned'>stay tuned!</span>