扩展剑道窗口休息kendoWindow(Extending kendo window breaks

2019-09-28 05:00发布

我试图继承剑道窗口。 到目前为止,我的子类的窗口工作。 但是,它打破了标准剑道窗口关闭事件。 当关闭事件被称为后续引发错误Uncaught TypeError: Cannot read property 'options' of undefined

这里是什么,我试图做一个例子。 http://jsbin.com/IfoMOPU/6/edit?html,js,output

我缺少解决这一问题?

Answer 1:

我相信这是剑道UI中的错误/设计问题。 现在唯一的解决办法是更换部件kendoWindow和更新“windowObject”功能,因此它也返回你的窗口的子类:

function windowObject(element, name) {
    var contentElement = element.children(KWINDOWCONTENT);

    return contentElement.data("kendoWindow") || contentElement.data("kendoMyWindow") || contentElement.data("kendo" + name);
}

固定例如: http://jsbin.com/OfIHOm/1/edit

更新:由于2013年第二季度SP1(2013.2.918版),在私有函数windowObject代码已经移到方法_object。

这意味着,你可以继承kendoWindow像任何其他部件,但是你仍然需要更新kendoWindow的_object方法:

/**
* update kendoWindow's _object method to return our new widget as well
*/
ui.Window.fn._object = function (element) {
    var content = element.children(KWINDOWCONTENT);

    return content.data("kendoWindow") || content.data("kendoMyWindow") || content.data("kendo" + this.options.name);
};

在更新的例子http://jsfiddle.net/lhoeppner/qj2HL/



Answer 2:

我就遇到了这个问题,因为我的剑道窗口被加载在它的内容的动态脚本。 通过移动这个脚本到页眉它解决了问题



文章来源: Extending kendo window breaks kendoWindow