如何扩展 kendo 编辑器小部件?
How can I extend kendo editor widget?
我需要扩展 kendo ui 编辑器小部件并对其进行自定义。
但是,toolbar.js
中出现奇怪的错误
所以我扩展了编辑器小部件并定义了初始化方法。
在 init 方法中,我使用 'call' 从父级调用 init 方法。
我在初始化编辑器实例时定义了 'tool' 选项,包括 'formatting'。
我只是扩展了编辑器小部件并定义了如下所示的初始化方法。
let kendo = window.kendo
let Editor = kendo.ui.Editor
let widget = Editor.extend({
init: function (element, options) {
Editor.fn.init.call(this, element, options)
}
})
kendo.ui.plugin(widget)
init 方法上下文中存在一些错误。
在 toolbar.js
kendo.ui.Editor.defaultTools 未定义....
我该如何解决这个问题?
isCustomTool: function(toolName) {
return !(toolName in kendo.ui.Editor.defaultTools);
},
TypeError: Cannot use 'in' operator to search for 'formatting' in undefined
at init.isCustomTool (toolbar.js?a639:509)
at init.toolGroupFor (toolbar.js?a639:294)
at init.render (toolbar.js?a639:641)
at init.bindTo (toolbar.js?a639:322)
at subclass.init (main.js?d94c:394)
at new subclass (kendo.core.js?0f57:193)
at HTMLTextAreaElement.eval (kendo.core.js?0f57:3342)
at Function.each (jquery.js?eedf:367)
at kendoJQuery.fn.init.each (jquery.js?eedf:202)
at kendoJQuery.fn.init.$.fn.<computed> [as kendoEditor] (kendo.core.js?0f57:3341)
您应该为自定义小部件提供唯一的名称:
let widget = Editor.extend({
init: function (element, options) {
...
},
options: {
name: 'MyEditor',
...
}
})
Kendo 使用 'name' 字段在公共命名空间中注册小部件。您使用继承的名称定义了一个小部件,因此标准 kendo 的编辑器小部件被覆盖了。
我需要扩展 kendo ui 编辑器小部件并对其进行自定义。 但是,toolbar.js
中出现奇怪的错误所以我扩展了编辑器小部件并定义了初始化方法。 在 init 方法中,我使用 'call' 从父级调用 init 方法。 我在初始化编辑器实例时定义了 'tool' 选项,包括 'formatting'。
我只是扩展了编辑器小部件并定义了如下所示的初始化方法。
let kendo = window.kendo
let Editor = kendo.ui.Editor
let widget = Editor.extend({
init: function (element, options) {
Editor.fn.init.call(this, element, options)
}
})
kendo.ui.plugin(widget)
init 方法上下文中存在一些错误。 在 toolbar.js kendo.ui.Editor.defaultTools 未定义....
我该如何解决这个问题?
isCustomTool: function(toolName) {
return !(toolName in kendo.ui.Editor.defaultTools);
},
TypeError: Cannot use 'in' operator to search for 'formatting' in undefined
at init.isCustomTool (toolbar.js?a639:509)
at init.toolGroupFor (toolbar.js?a639:294)
at init.render (toolbar.js?a639:641)
at init.bindTo (toolbar.js?a639:322)
at subclass.init (main.js?d94c:394)
at new subclass (kendo.core.js?0f57:193)
at HTMLTextAreaElement.eval (kendo.core.js?0f57:3342)
at Function.each (jquery.js?eedf:367)
at kendoJQuery.fn.init.each (jquery.js?eedf:202)
at kendoJQuery.fn.init.$.fn.<computed> [as kendoEditor] (kendo.core.js?0f57:3341)
您应该为自定义小部件提供唯一的名称:
let widget = Editor.extend({
init: function (element, options) {
...
},
options: {
name: 'MyEditor',
...
}
})
Kendo 使用 'name' 字段在公共命名空间中注册小部件。您使用继承的名称定义了一个小部件,因此标准 kendo 的编辑器小部件被覆盖了。