我有一个自定义过滤器函数,我正在调用 ng-repeat 指令:
<div ng-repeat="app in appVm.appList | filter:appVm.assetFilter">{{app.title}}</div>
这显然会影响 appList 中每个应用程序的 assetFilter 函数。过滤完成后,我想运行另一个函数。
如何检测过滤过程何时完成?
Update
根据指向我的回复转向其他答案 https://stackoverflow.com/a/15208347/96521,我可以进一步澄清一下。
当我使用自定义指令并使用scope.$last 实现该解决方案时,我观察到以下情况:
- 当页面首次呈现并填充列表时,它会按预期工作 - 检测到最后一个项目。
- 当我的过滤函数被触发并且项目从列表中删除时,指令处理程序根本不会被命中。
- 当相同的项目被添加回列表中,但它们不是列表中的最后一个项目时,指令会被命中,但仅限于被添加回列表中的项目,并且没有具有范围的项目。$last的真实的。
希望这有助于澄清。
ng-repeat
为每个重复元素创建一个范围。此范围包括$first
and $last
所以你可以添加一个指令来检查这些
HTML
<div ng-repeat="item in items" check-last>
指示:
app.directive('checkLast',function(){
return{
restrict:'A',
link:function(scope,elem,attrs){
if(scope.$last){
/* repeater done code*/
}
}
}
})
DEMO http://plnkr.co/edit/tvLPwnBueNIhU3zIwCH0?p=preview
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)