2015-11-25 2 views
0

Я использую kendo-editor для редактирования текста WYSIWYG и отлично работает. Но когда kendo-editor будет внутриkendo-window Я получаю эту ошибкуРедактор Kendo UI внутри окна Kendo

TypeError: Cannot read property 'open' of null 
    at Widget.extend._createContentElement (webpack:///./kendo-ui/js/kendo.editor.js?:426:16) 
    at Widget.extend._initializeContentElement (webpack:///./kendo-ui/js/kendo.editor.js?:512:40) 
    at new Widget.extend.init (webpack:///./kendo-ui/js/kendo.editor.js?:282:18) 
    at HTMLTextAreaElement.eval (webpack:///./kendo-ui/js/kendo.core.js?:3104:32) 
    at Function.jQuery.extend.each (webpack:///../Scripts/jquery.js?:374:23) 
    at jQuery.fn.jQuery.each (webpack:///../Scripts/jquery.js?:139:17) 
    at $.fn.(anonymous function) [as kendoEditor] (webpack:///./kendo-ui/js/kendo.core.js?:3103:26) 
    at createIt (webpack:///./kendo-ui/js/kendo.angular.js?:192:31) 
    at createWidget (webpack:///./kendo-ui/js/kendo.angular.js?:168:20) 
    at link (webpack:///./kendo-ui/js/kendo.angular.js?:681:34) 

произошедшей в kendo.editor.js.

iframe = $("<iframe />", { title: editor.options.messages.editAreaTitle, frameBorder: "0" })[0]; 

$(iframe) 
    .css("display", "") 
    .addClass("k-content") 
    .insertBefore(textarea); 


iframe.src = src; 

wnd = iframe.contentWindow || iframe; 
doc = wnd.document || iframe.contentDocument; 

$(iframe).one("load", function() { 
    editor.toolbar.decorateFrom(doc.body); 
}); 

doc.open(); // throws TypeError: Cannot read property 'open' of null 
doc.write(

Примечание нет ошибок и он прекрасно работает, когда kendo-editor не внутри kendo-window.

Неужели кто-нибудь сталкивается с чем-то вроде этого и что такое решение/обходное решение?

+1

Вы уверены, что ваш редактор кендо устанавливается ПОСЛЕ кендо окна создается? Если не пытаться вызвать kendoEditor (или объект для привязки) в случае «открыть» kendoWindow – Nabab

+1

, это было проблемой. не стесняйтесь добавлять в качестве ответа, я соглашусь :) – Jay

ответ

1

Экземпляр редактора Kendo следует вызывать после открытия окна kendo, другими словами, после того, как его контейнер находится в DOM.

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

$("<div/>").kendoWindow({ 
    open: function(e){ 
    $("#myTextarea").kendoEditor(); 
    } 
});