在指令模板中的 ng-repeat 中编译有条件插入的 html



我有一个指令的模板,里面有一个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>

最新更新