在 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,但是链接函数所指向的元素只是列表中的最后一项,因此只有此项会突出显示文本。(我可以尝试获取父元素,但对我来说,这似乎不是最好的做法)
代码在链接函数中,我在其中观察 highlightKey 属性的变化。
PS vm.highlight 仅在数据从服务器返回后设置为其值