目前使用 msDropDown 3.2 使控件看起来很漂亮,但是由于正在开发的应用程序的性质,我已经研究过使用 Knockout JS 来处理 UI 数据绑定。不幸的是,每当我更改视图模型上的属性时,它都会更改选择而不是渲染控件(我知道更改渲染控件所需的代码,但不确定如何将其挂钩到 Knockout)。
有没有人集成了这两个工具,如果有,那么你是如何让它们很好地结合在一起的?
编辑:
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。
谢谢,
克里斯。