Как расширить виджет редактора кендо - PullRequest
1 голос
/ 05 июля 2019

Мне нужно расширить редактор Kendo Ui и настроить его.Однако в toolbar.js

есть странная ошибка. Поэтому я расширяю виджет Editor и определяю методы init.В методах init я вызываю метод init из parent, используя 'call'.Я определил параметры «инструмента», включая «форматирование» при инициализации экземпляра редактора.

Я просто расширил виджет редактора и определил метод инициализации, как показано ниже.

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)

В контексте инициализации есть некоторые ошибкиметод.В 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)

1 Ответ

0 голосов
/ 05 июля 2019

Вы должны предоставить уникальное имя для вашего пользовательского виджета:

let widget = Editor.extend({
    init: function (element, options) {
        ...
     },
     options: {
         name: 'MyEditor',
         ...
     }
})

Kendo использует поле 'name' для регистрации виджетов в общем пространстве имен. Вы определили виджет с унаследованным именем, поэтому стандартный виджет редактора кендо был перезаписан.

...