我想知道是否可以从剑道 mvvm 中获取 DOM 元素。
我的输入定义如下:
<input id="myInput" type="text" data-bind="value: model.Name" />
有时我会在 javascript 中设置值,例如:
myViewModel.set("model.Name", "John Doe");
这会自动设置绑定(bind)元素内的值,但设置该值后我想更改刚刚更新的 DOM 元素上的某些内容。喜欢:
myViewModel.getElement("model.Name").className = "MyClass;
剑道好像没有那种功能。 kendoBindingTarget
最佳答案
我最终使用了 custom binding在刷新的位置(这是集合)我可以访问该元素:
html
<input id="myInput" type="text" data-bind="customValue: model.Name" />
js
kendo.data.binders.customValue= kendo.data.Binder.extend({
init: function(element, bindings, options) {
kendo.data.Binder.fn.init.call(this, element, bindings, options);
var that = this;
$(that.element).on("change", function() {
that.change();
});
},
refresh: function() {
var that = this,
value = that.bindings["customValue"].get();
$(that.element).val(value).addClass('MyClass'); //<======that.element========
},
change: function() {
var value = this.element.value;
this.bindings["customValue"].set(value);
}
});
关于javascript - 如何从 Kendo View 模型获取 DOM 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32189134/