Angularjs自定义指令在运行ng repeat后高亮显示文本

Angularjs自定义指令在运行ng repeat后高亮显示文本,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我想创建一个指令,在ngRepeat呈现所有项目后,使用jquery highlight插件高亮显示文本。考虑以下HTML: <div data-hightlight="" data-highlight-key="{{vm.highlight}}"> <div data-ng-repeat="item in items"> {{item.description}} </div> </div> 如果我将高亮显示放在外部div上

我想创建一个指令,在ngRepeat呈现所有项目后,使用jquery highlight插件高亮显示文本。考虑以下HTML:

<div data-hightlight="" data-highlight-key="{{vm.highlight}}">
  <div data-ng-repeat="item in items">
       {{item.description}}
  </div>
</div>
如果我将高亮显示放在外部div上,它将在ng repeat渲染之前执行,因此不会高亮显示任何内容。如果我把它放在内部div中,该指令将针对每个效率非常低的项运行

我还尝试检查$scope.$last,但是to linking函数所引用的元素只是列表中的最后一项,因此只有该项会突出显示文本。我可以尝试获取父元素,但对我来说,这似乎不是最佳实践

代码在link函数中,我在其中观察highlightKey属性的变化


p.S.vm.highlight仅在从服务器返回的数据在每个中继器中运行后设置为其值。

外部div不知道其中的ng repeat。可能是额外的函数调用,但请记住,angular为这些重复元素中的每一个构建一个scope对象