在Angular 1中,我编写了一个自定义指令(“repeater-ready”),与ng-repeat一起使用,以在迭代完成时调用回调方法:
if ($scope.$last === true)
{
$timeout(() =>
{
$scope.$parent.$parent.$eval(someCallbackMethod);
});
}
标记中的用法:
<li ng-repeat="item in vm.Items track by item.Identifier"
repeater-ready="vm.CallThisWhenNgRepeatHasFinished()">
如何在Angular 2中使用ngFor实现类似的功能?
解决方法:
你可以使用这样的东西(ngFor local variables):
<li *ngFor="#item in Items; #last = last" [ready]="last ? false : true">
那么你可以Intercept input property changes with a setter
@Input()
set ready(isReady: boolean) {
if (isReady) someCallbackMethod();
}