私が正しく理解している場合は、ビューモデルにドロップダウンの変更イベントにバインドするメソッドを作成できます。
例方法:
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:
}
}
};
このような方法には、その後バインドできあなたのドロップダウン:ここに述べたように
<select id="FirstDropDown" data-bind="options: myViewModel.firstDropDownArray, <any other binding options>, event: {change: myViewModel.validateSelection(currentItem)}">
</select>
:event-binding、
あなたのハンドラを呼び出して、ノックアウト現在のモデル の値を最初のパラメータとして供給します。
これは、メソッドを呼び出すときにcurrentItem
が選択項目になることを意味します。 私のサンプルコードではitem.toUpperCase()
と書かれていますが、それはその項目が文字列として渡されたと仮定しているだけです。この構文は明らかにあなたのドロップダウンをどのように宣言して入力したかに応じて変更する必要がありますが、本質的には、変更イベント、または任意の他のイベントにバインドできるビューモデルにメソッドを書き込むことができます。
どのように現在あなたのドロップダウンをビューモデルにバインドしていますか?あなたはコードを投稿できますか?通常、ビューモデル内のオブジェクト(つまり、配列)にドロップダウンをバインドします。配列が更新されると、ドロップダウンが更新されます。たとえば、最初のドロップダウンはarrayCategoryにバインドされ、2番目のドロップダウンはarraySubCategoryにバインドされます。カテゴリを選択するときは、viewmodelのarraySubCategoryオブジェクトを更新すると仮定しています。 2回目のドロップダウンで新しいサブカテゴリが自動的に表示されます。 – Nope
このarticel on observableArrays(http://knockoutjs.com/documentation/observableArrays.html)は、配列の操作方法を示しています。本質的には、配列を更新してデザインタイムにドロップダウンにバインドすることだけが心配です。 – Nope
ご返信ありがとうございます。私はおそらくそれほど明確ではありませんでした。私がviewmodelでやろうとしているのは、選択した値= Appleの場合です。これは、選択した値=飲み物なら、これを実行します。 –