javascript – Angular 2:ngFor完成后的回调

在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();
  }
上一篇:GoLand配置数据库、远程host以及远程调试


下一篇:javascript-如何访问在* ngFor中定义的变量?