Angularjs过滤回调

Ser*_*rov 5 html javascript jquery dom angularjs

我有一个使用Angularjs过滤器过滤的项目列表.这是Jade标记:

li(ng-repeat="parcel in parcels | filter : filterActiveAreaParcels")
Run Code Online (Sandbox Code Playgroud)

我想运行一些jQuery插件,它可以在过滤器函数运行并在DOM中呈现元素后增强加载元素的外观.我该怎么做?

Ste*_*wie 1

假设您的过滤器没有执行一些疯狂的异步操作,并且您的包裹列表具有合理数量的项目(请参阅此处Misko 的 SO 答案),那么这个plnkr应该可以完成这项工作。请注意此 plnkr 中的自定义过滤器如何执行一些相对昂贵的操作(循环超过 100 万次迭代),但 my-plugin 指令内的 $scope.$watch 仍然能够为列表中的每个过滤项按时调用 jquery 插件。

如果您的 jquery 插件在 ng-repeat 完成之前仍然被调用,您可以尝试在指令中使用 $timeout() 。