質問: ノックアウトjs - ドロップダウンリストで条件付きバインディングを行う方法 私は様々なMvcアクションから取り込まれたノックアウトビューモデルを持っています。 1. カテゴリは最初のドロップダウンから選択します(フルーツ、ミート、ドリンクなど)。 2. 最初の選択肢から2番目のドロップダウンが自動的に入力されます。しかし、果物(リンゴ、オレンジなど)には2つのマッチがあり、肉(牛肉、ラム)には2つあり、飲み物には数多くの選択肢があります(数百)。 3. 私のページは現在、選択したカテゴリに応じて検索ボックスを表示します。 I was wondering how to automatically bind the second dropdown for Fruit & Meat, or wait and do the bind from the results of the search query. 申し訳ありませんが、これは漠然としています。 KnockoutJsにはとても新しい。 前もって感謝します。
回答: 私があなたを正しく理解していれば、ドロップダウンの変更イベントにバインドするビューモデル内にメソッドを作成できます。 メソッド例: ``` var myViewModel = { firstDropDownArray: ko.observableArray([]), secondDropDownArray: ko.observableArray([]), //Validates Selection validateSelection: function (item) { var anotherList; switch (item.toUpperCase()) { case "FRUIT": //Do something... break; case "DRINKS": //Do something else... break; default: } } }; ``` ドロップダウンは次のようなメソッドにバインドできます: ``` ``` ここに記載されているように:イベントバインディング、 > ハンドラを呼び出すとき、Knockoutは現在のモデルを提供します > 値を最初のパラメータとして使用します。 > > これは、メソッドを呼び出すときに `currentItem` が選択されたアイテムになることを意味しています。 私のサンプルコードでは、 `item.toUpperCase()`を書いていますが、これは単に項目が文字列として渡されたと仮定したことです。この構文は明らかにあなたのドロップダウンをどのように宣言して入力したかに応じて変更する必要がありますが、本質的には、変更イベント、または任意の他のイベントにバインドできるビューモデルにメソッドを書き込むことができます。