javascript - 如何替换现有的 Kendo UI 小部件?

标签 javascript jquery kendo-ui kendo-autocomplete

我正在尝试扩展现有的 KendoUI 小部件(自动完成)。由于我们的应用程序已经使用了很多自动完成小部件的实例,我不想创建一个新的小部件来扩展当前的小部件,而是要替换现有的小部件。

我已经找到了这个主题:kendo-ui autocomplete extend , 但不幸的是它指向创建一个新的。

我尝试了以下代码:

   var plg = kendo.ui.AutoComplete.extend({
        options: {
            name: 'AutoCompleteMyOne'
        },
        init: function (_element, _options)
        {
            kendo.ui.AutoComplete.fn.init.call(this, _element, _options);

         /*...*/
        }
    });
    kendo.ui.plugin(plg);

重点是选项的名称属性。如果名称只是“AutoComplete”,则初始化不再起作用:此行以无限循环结束:

kendo.ui.AutoComplete.fn.init.call(this, _element, _options);

我如何调用基础初始化或者它真的被覆盖了吗?

最佳答案

如果您替换自动完成小部件,那么您的代码实际上是在递归地调用它自己的 init 方法。 所以你需要存储现有的方法并调用那个方法,例如像这样:

var plg = (function (init) {
    return kendo.ui.AutoComplete.extend({
        options: {
            name: 'AutoComplete'
        },
        init: function (_element, _options) {
            // modify the placeholder
            _options.placeholder += " (custom)";

            init.call(this, _element, _options);

            /*...*/
        }
    });

})(kendo.ui.AutoComplete.fn.init);
kendo.ui.plugin(plg);

( demo )

关于javascript - 如何替换现有的 Kendo UI 小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22196902/

相关文章:

Javascript 正则表达式从字符串中给出 NaN

javascript - 生产 Node 应用程序找不到 SVG 文件

php - encodeURIComponent 和 mysql_real_escape_string

jquery - 在 jQuery 前置后悬停不清除 IE 8 和 9 菜单项

javascript - 对象不支持属性或方法 'text'

javascript - 如何为模板重用 Kendo UI 组件?属性 ".name"在 DOM 中为多个 HTML 元素提供完全相同的 ID

JavaScript - onCopy 事件和模糊

javascript - 在附加内容之前延迟加载图像

jquery - 将剑道图表转换为 pdf 时,它会在 pdf 图表上绘制线条

jquery - 引用网格上的 Kendo UI (ASP.NET MVC) 下拉列表