如何从 Kendo 视图模型中获取 DOM 元素?
How to get DOM element from Kendo view model?
我想知道是否可以从 kendo mvvm 中获取 DOM 元素。
我的输入定义如下:
<input id="myInput" type="text" data-bind="value: model.Name" />
有时我会在 javascript 中设置值,例如:
myViewModel.set("model.Name", "John Doe");
这会自动设置绑定元素内的值,但设置该值后我想更改刚刚更新的 DOM 元素上的某些内容。喜欢:
myViewModel.getElement("model.Name").className = "MyClass;
好像kendo没有那个功能。 kendoBindingTarget
可能相反
您应该能够像这样获取小部件的元素:
var myElement = $("#myWindow").data("kendoWindow").element;
无论您的小部件是什么,您只需要使用正确的小部件名称即可。 According to the documentation 这将 return 它作为一个 jQuery 对象。
我最终使用了 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);
}
});
我想知道是否可以从 kendo mvvm 中获取 DOM 元素。
我的输入定义如下:
<input id="myInput" type="text" data-bind="value: model.Name" />
有时我会在 javascript 中设置值,例如:
myViewModel.set("model.Name", "John Doe");
这会自动设置绑定元素内的值,但设置该值后我想更改刚刚更新的 DOM 元素上的某些内容。喜欢:
myViewModel.getElement("model.Name").className = "MyClass;
好像kendo没有那个功能。 kendoBindingTarget
您应该能够像这样获取小部件的元素:
var myElement = $("#myWindow").data("kendoWindow").element;
无论您的小部件是什么,您只需要使用正确的小部件名称即可。 According to the documentation 这将 return 它作为一个 jQuery 对象。
我最终使用了 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);
}
});