3

これについて完全に間違った方法で行っているかどうかはわかりません! しかし、要素内のすべてのコードが実行された後に、要素のカスタム バインディングを呼び出せるようにしたいと考えています。

私はいくつかの方法を試しました: テンプレートと afterrender を使用した if バインディング、およびカスタム バインディングですが、要素内のコンテンツが foreach を使用しているという事実のために、私が試したすべてのバインディングを呼び出す dom 要素の前に私のメソッドを呼び出しますforeach が実行されます。

私が考えることができる唯一のオプションは、私のメソッドの呼び出しを数分の1秒遅らせることですが、これは少しハッキーに思えます。

どんな助けでも大歓迎です。

4

1 に答える 1

2

あなたの正確なシナリオはわかりませんが、setTimeoutコードを遅らせる () 以外にアプローチできる方法がいくつかあります。

1 つのオプションはko.applyBindingsToDescendants(context, element)、カスタム バインドで使用することです。これにより、この要素の子に対するすべてのバインディングが強制的に実行されます。次に、実行するコードを続行できます。カスタム バインディングを、foreach.

foreach別のオプションは、同じ要素を扱っている場合、カスタム バインディングも を処理することです。この場合、ko.applyBindingsToNode(element, { foreach: someItems }, context)要素を呼び出してから、コードを続行できます。

于 2013-07-05T16:06:41.740 に答える