Extjs 如何将数据从窗口传送到主屏幕
在某个Ajax调用成功后,我打开了一个窗口,并得到了与该窗口相关的响应。这是我的密码Extjs 如何将数据从窗口传送到主屏幕,extjs,extjs6,extjs6-classic,Extjs,Extjs6,Extjs6 Classic,在某个Ajax调用成功后,我打开了一个窗口,并得到了与该窗口相关的响应。这是我的密码 success: function (response) { var data = Ext.decode(response.data); var window = Ext.widget('win'); window.data = data; window.show(); }, 现在我正在做一些操作,所有人工数据都可以在window对象中使用。保存后,我将关闭窗口。在父母身上,当
success: function (response) {
var data = Ext.decode(response.data);
var window = Ext.widget('win');
window.data = data;
window.show();
},
现在我正在做一些操作,所有人工数据都可以在window对象中使用。保存后,我将关闭窗口。在父母身上,当我试图获得这样的成功时,我没有得到任何价值。如何处理这个问题
someFunction : function(){
var window = Ext.widget('win');
window.data ; // Fail (No data available).
}
success()
和someFunction()
中的窗口对象与Ext.widget
中的窗口对象不同,它们将在这两个函数中创建一个单独的实例。因此数据不会被持久化。要持久保存数据,可以使用config
或viewModel
我已经根据您的场景创建了一个示例代码,使用configs在windowclose上保存数据,configs对特定视图及其控制器起着某种全局作用
Ext.application({
name : 'Fiddle',
launch : function() {
Ext.create("Ext.form.Panel",{
renderTo: Ext.getBody(),
config: {
win: Ext.widget('window'), //if we store window, on close we loose it
data: "" //it will persist, so this can be used
},
items: [
{
xtype: 'button',
text: 'call',
handler: function(){
var me = this;
Ext.Ajax.request({
url: 'data1.json',
success: function(response, opts) {
var data = Ext.decode(response.responseText);
var window = me.up().config.win;
me.up().config.data = data;
window.data = data;
window.show();
},
failure: function(response, opts) {
console.log('server-side failure with status code ' + response.status);
}
});
}
}, {
xtype: 'button',
text: 'Get Value',
handler: function(){
console.log(this.up().config.win.data);
console.log(this.up().config.data);
}
}
]
});
}
});
这里,第一个按钮的处理程序表示ajax调用成功
,第二个按钮的处理程序表示someFunction
这里我保留了两个配置,win和data。win是一个窗口对象,关闭时将被销毁,因此我们无法使用它。第二个是数据,它是一个普通变量,除非相应的视图被破坏,否则它将被持久化。所以你可以使用第二配置
你可以找到工作的小提琴。你需要更加异步地思考。window.data在调用窗口后立即执行,即在数据更改之前。考虑添加回调函数或某种处理程序,这样就知道窗口何时关闭,数据可以被添加到变量“谢谢”。将其设置为隐藏,它应该可以工作-docs here:@David共享一个小提琴,复制上述行为?我将尝试创建一个小提琴,当前我正在将数据附加到窗口对象。让我来做一把小提琴。因为不知道如何使用回拨和所有。谢谢,实际上我也做了同样的事情。让我们再等几个小时,万一没人来,我会接受的。