3.2.0 を使用して、ネストされた KnockoutJS コンポーネントの階層があります。非常にうまく機能していますが、コンポーネントの階層全体がロードされてレンダリングされたら、いくつかのコードを実行しようとしています。これは、afterRender() とほぼ同等であり、afterRender と同じ一般的なユース ケースに必要です。
私はいくつかのアプローチを試しましたが、これまでのところ運がありません:
- 以下をルート テンプレートに追加しましたが、ネストされたコンポーネントが読み込まれる前に呼び出されるため、早すぎます。
<!--ko template: {afterRender: onLoad.bind($data)} -->
- 最新の 3.3.0-alpha を使用し、すべてのコンポーネントで synchronous:true を指定します。しかし、私は AMD を使用しているため、コンポーネントは依然として非同期で「ロード」されていると考えています。
- 対応するコンポーネントがロードされたときにのみ解決される遅延オブジェクトのコレクションを構築しようとしました。これは非常に複雑になり、まだ説明しない理由で機能しませんでした。
ノックアウトjsコンポーネントの完全な階層がロードされてレンダリングされたら、コールバックを呼び出す方法はありますか? ありがとう!
この 2 つのスレッドに出くわしたばかりなので、他の人もこれを探しているようです。既存の回避策との主な違いは、ネストされたコンポーネントでは機能しないことです。