如何从 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);
    }
});