同じことをするディレクティブを作成することができればよいでしょう。ディレクティブにフラグlast
を渡すだけで、最後の要素がレンダリングされたときに、必要な機能が呼び出されます。
ビュー
<p class="my-element"
*ngFor="let i of stuff; let l = last"
[lastElement]="l" (lastFunc)="test()">
{{i}}
</p>
指令
import { Directive, ElementRef, Input, Output, EventEmitter } from '@angular/core';
@Directive({
selector: '[lastElement]'
})
export class LastElementDirective {
@Input() lastElement : any;
@Output() lastFunc = new EventEmitter();
constructor(private el: ElementRef) {
this.setTimer(); //somehow lastElem value is available on next tick
}
setTimer(){
setTimeout(() => {
if(this.lastElem) this.lastFunc.emit();
}, 0);
}
}
Plunkr in action