ウィジェットベースのアプリケーションを開発したシナリオがあります。これは、アプリケーションを使用するのDOMに自身を挿入します。このウィジェットはKnockoutJSを使用して独自のUIをレンダリングし、独自のViewModelをバインドします。KnockoutJS二重バインディングウィジェットアプリケーション
のかかるアプリケーション(おそらくない鉱山)も全く違うのViewModelでそれ自身のUIをレンダリングするためにKnockoutJSを使用しています。何が起こる
は、その消費ページがロードされ、ko.applyBindings(hostPageViewModel)を実行します。その後、ウィジェットはko.applyBindings(widgetDataViewModel)をロードして実行します。 2番目のapplyBindingsが実行されると、消費ページはそのバインドされたモデルのコンテキストを失い、何も表示しません。デバッグでは、消費しているアプリケーションでレンダリングされたデータを確認してから、ウィジェットアプリケーションでデータを消去します。
ノックアウトの全く異なる2つのインスタンスを維持しようとする以外にも(これが可能かどうかは確かではありませんが、私はウィジェットのバージョンを新しくしてkotwoと呼ぶことを考えていました)、これには解決策がありますか?
このデザインのアプリケーションスタイル内のアプリケーションのため、バインドは1回だけ適用できません。
誰かが提案している場合、私はこの1つの助けが大好きです。
私はちょうど私が存在を知らなかったどの[http://stackoverflow.com/questions/7342814/knockoutjs-ko-applybindings-to-partial-view]これを見つけました。あなたがバインディングをスコープすることができるように聞こえますが、私はこれがそれをするかどうかはわかりません。これに関する文書はないようです。私は、ウィジェットのアプリはそれがrootであればapplyBindingsを落とすことができ、これが動作すれば何らかのアプリを使用しているものから完全に分離することができると思います。 – farina
よろしくお願いします。 KnockoutJSのルートノード機能は、私が必要とするものを正確に行います。これらの人が考えなかったことは何ですか?ノックアウトチームと仕事をする必要があります...素晴らしい! – farina
問題をどのように解決したかを問題として投稿し、他のユーザーが正しく指示されるようにすることはできますか。 – madcapnmckay