1. ホーム
  2. mvvm

[解決済み】KnockOutJS - 複数のViewModelsを1つのViewで使用する場合

2022-04-13 21:05:35

質問

私のアプリケーションはかなり大きくなってきており、1つのViewModelで各Viewを処理するには大きすぎると思っています。

そこで、複数のViewModelsを作成し、それらをすべて1つのViewに読み込ませることがどれほど難しいことなのかを考えています。を渡すことができるようにする必要があることに注意してください。 X ViewModel のデータを Y ViewModel のデータで、個々のViewModelsは互いに通信できるか、少なくとも互いを認識する必要があります。

例えば、私は <select> ドロップダウンがあり、そのドロップダウンは選択状態になっているので、選択されたアイテムの ID を <select> を別のViewModelでAjaxを呼び出すと......。

1つのViewで多数のViewModelsを扱う際のポイントがあれば教えてください :)

どのように解決するのですか?

Knockoutは複数のモデルバインディングをサポートするようになりました。そのため ko.applyBindings() メソッドは、オプションのパラメータとして、バインディングを有効にする要素とその子孫を受け取ります。

例えば

ko.applyBindings(myViewModel, document.getElementById('someElementId'))

これは、アクティベーションを ID someElementId とその子孫になります。

参照 ドキュメント をご覧ください。