Я определим Source Window
какКак клонировать компонент (Window) в ExtJS 4.1
Ext.define('MyWindow', {
extend: 'Ext.window.Window',
title: 'Source Window',
modal: true,
height: 200,
width: 400,
closable:false,
tbar: [{
text:'hide',
handler:function(){
this.up('window').hide();
}
}],
items: {
xtype: 'grid',
border: false,
columns: [{header: 'World'}],
store: Ext.create('Ext.data.ArrayStore', {})
}
});
И я удалить все элемент окна, а затем добавить новый элемент в нем, как
var w = new MyWindow();
tf = Ext.create('Ext.form.field.Text', {
name: 'name',
fieldLabel: 'Name'
});
w.removeAll(true);
w.add(tf);
w.show();
w.hide();
Теперь я хочу клонировать мое окно (окно добавлен новый элемент), как
Ext.create('Ext.Button', {
text: 'Clone to new',
visible: false,
renderTo: Ext.getBody(),
handler: function() {
var newWin;
Ext.WindowManager.each(function(win) {
newWin = win.cloneConfig();
newWin.title = "Clone Window";
newWin.show();
});
}
});
Но это показать Source Window
?? Как исправить Вот мой полный код http://jsfiddle.net/MKUSB/
есть в любом случае с помощью 'newWin.add (w.items.cloneConfig()) // fail'? Я не хочу использовать add id в любом случае? – freestyle
Вы также можете использовать w.getComponent (0) .cloneConfig() с идентификатором элемента по умолчанию для компонента, а затем вам не нужно добавлять текстовый идентификатор. Этот идентификатор числового элемента всегда начинается с 0. – user1721713
да спасибо u :) – freestyle