Extjs 克隆面板
panel({}) 及其所有内容,如网格、表单,并且想要将精确的克隆渲染到另一个面板,有没有办法做到这一点..是否可以使用 panel.getEl() 来做到这一点,或者还有其他方法吗...请帮忙
panel({}) and all its contents like grid, form and want to render that exact clone to another panel is there a way to do it..is it possible to do it with panel.getEl() or is there any other way...please help
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(2)
仙气飘飘2024-11-13 01:11:47
我必须承认旧的答案并不完全正确。从 ExtJS2 开始就可以克隆组件,并且可以通过实例方法 cloneConfig(overrides)
来完成。
这将返回当前实例的克隆以及应用的覆盖(如果设置)。干净的克隆将要求您使用正确的配置,这意味着配置中不会创建任何实例。 这里有一些关于此的信息有关更多详细信息,请阅读Sencha 指南
旧答案 (仅当要克隆配置的组件包含实例时才有效而不是简单的配置)
不,没有内置方法可以做到这一点。而且你不应该尝试它。考虑将面板包装在一个返回其实例的函数中(一种简单的工厂)。
编辑
如下内容:
Factory.Panel = function (config) {
var defaults = {
labelWidth: 80,
labelAlign: 'left',
layout: 'form',
width: 720,
autoHeight: true,
header: false,
bodyStyle: 'padding:10px 15px;'
};
var cfg = Ext.apply({}, config, defaults);
var cmp = new Panel(cfg);
return cmp;
}
您可以添加任意数量的函数参数。这将是一种干净的方法。您只需克隆简单的对象(例如记录)即可。请注意,工厂是一个命名空间!
~没有更多了~
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
sra的答案是不正确的。 Ext 的cloneConfig 完全符合您的要求。 http://docs.sencha。 com/ext-js/4-1/#!/api/Ext.Component-method-cloneConfig
以下代码将两个“相同”面板呈现到正文。
The sra's answer is incorrect. Ext's cloneConfig does exactly what you want it to. http://docs.sencha.com/ext-js/4-1/#!/api/Ext.Component-method-cloneConfig
The following code renders two of the "same" panels to the body.