-1

私のAngular 11プロジェクトでは、ビューを変更するObservableがあり、レンダリング中に時間がかかります。

このようなもの:

export class MyComponent implements OnInit {
  myObservable = of([1, 2, 3]);

  constructor() { }

  ngOnInit(): void {
    this.myObservable.pipe(
      // here is some functions
    ).subscribe();
  }

}

ngOnInitオブザーバブルを実行した後、実行中および処理中のデータ。データが到着した後、パイプはテンプレートを変更します。しかし、この変化ngAfterViewInitは完成後に起こります。したがって、パイプの後に実行するソウルションが必要であり、パイプが終了したためにレンダリングが終了しました。

オブザーバブルと原因となったレンダリングが終了した後にコード (ツールチップの初期化) を実行するにはどうすればよいですか?

ngAfterViewCheckedビューが変更されているときに常に実行され、ツールチップの初期化によってビューも変更されるため、これは良い解決策ではありません。したがって、この初期化を一度だけ実行したいと思います。

解決策はありますか?

4

3 に答える 3

0

ページがパイプ後にロードされ、1 秒後にコードが実行される回避策として timout 関数を使用できます。これを 1 秒未満に減らすことができます。

export class MyComponent implements OnInit {
  myObservable = of([1, 2, 3]);
  constructor() { }

  ngOnInit(): void {
    this.myObservable.pipe(
      setTimeout( ()=>{
   // your code here
   }, 1000)
    ).subscribe();
  }

}
于 2021-06-28T22:51:32.337 に答える