在ng repeat运行后,Angularjs自定义指令突出显示文本

时间:2013-11-09 17:49:04

标签: angularjs angularjs-directive

我想在ngRepeat呈现其所有项目之后创建一个高亮显示文本的指令(使用jquery高亮插件)。请考虑以下html:

<div data-hightlight="" data-highlight-key="{{vm.highlight}}">
  <div data-ng-repeat="item in items">
       {{item.description}}
  </div>
</div>

如果我将高亮显示在外部div上,则会在ng重复渲染之前执行,因此不会突出显示任何内容。如果我将它放在内部div上,则指令针对每个项目运行,效率非常低。

我还尝试检查$ scope。$ last,但是链接函数的元素是引用的,只是列表中的最后一项,所以只有这个项才能获得突出显示的文本。 (我可以尝试获取父元素,但对我来说,这似乎不是最好的做法)

代码在链接函数内部,我在其中观察highlightKey属性的更改。

P.S。 vm.highlight仅在数据从服务器返回后设置为其值

0 个答案:

没有答案