1

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 属性の変更を監視します。

PS vm.highlight は、データがサーバーから返された後にのみその値に設定されます

4

0 に答える 0