現在、msDropDown 3.2 を使用してコントロールをきれいに表示していますが、開発中のアプリケーションの性質上、Knockout JS を使用して UI-Data Binding を処理することを検討しています。残念ながら、ビューモデルのプロパティを変更すると、選択が変更されますが、レンダリングされたコントロールは変更されません (レンダリングされたコントロールを変更するために必要なコードは知っていますが、これをノックアウトにフックする方法がわかりません)。
この 2 つのツールを統合した人はいますか。
編集:
HTML:
<select data-bind="value: Type">
<option value="1">First</option>
<option value="2">Second</option>
<option value="3">Third</option>
<option value="4">Fourth</option>
</select>
JavaScript:
function ViewModel() {
var self = this;
self.Name = ko.observable();
self.Type = ko.observable();
self.IsVisible = ko.computed(function () {
return this.Type() == 1;
}, this);
}
var vm = new ViewModel();
ko.applyBindings(vm);
$(document).ready(function () {
$("select").msDropDown();
});
上記のコードからわかるように、ViewModel インスタンスを作成し、バインディングを適用して msDropDown を開始しています。
私が次に呼び出す場合は、次のように呼び出します。
vm.Type("2");
次に、基になる選択を更新しますが、msDropDown コントロールのフロント エンドは更新しません。基本的に、プロパティを変更するときに Knockout が呼び出す可能性のあるイベントにフックする方法が必要です。これにより、それが選択であるかどうかを判断し、msDropDown 固有のコードを呼び出して UI を更新できます。
ありがとう、
クリス。