在Angular 1中,我编写了一个自定义指令(“ repeater-ready”),ng-repeat可在迭代完成后与之一起使用以调用回调方法:
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()">
如何ngFor在Angular 2中实现类似的功能?
ngFor
您可以使用类似以下内容(ngFor局部变量):
<li *ngFor="#item in Items; #last = last" [ready]="last ? false : true">
然后,您可以使用设置器拦截输入属性的更改
@Input() set ready(isReady: boolean) { if (isReady) someCallbackMethod(); }