我无法将数据发送到extjs中的新窗口。根据{{3}}的答案,我在新窗口中将窗口属性设置为我需要的值:
function OpenAddSampleWindow(datasetid)
{
var VIEW_WIDTH = $(window).width(); // returns width of browser viewport
var VIEW_HEIGHT = $(window).height(); // returns height of browser viewport
win = Ext.create('widget.window', {
title: 'Add Sample',
id: 'AddSampleWindow',
closable: true,
closeAction: 'destroy',
width: VIEW_WIDTH,
minWidth: 600,
height: VIEW_HEIGHT,
minHeight: 400,
modal: true,
layout: 'fit',
items : [{
xtype : "component",
autoScroll: true,
autoEl : {
tag : "iframe",
src : "sample_add.html"
}
}]
});
win.datasetid=datasetid;
win.show();
return win;
}
然后,新窗口的javascript具有以下在页面加载时运行的函数:
Ext.onReady(function(){
alert(window.datasetid);
});
警告框中显示的所有内容都是"未定义"我也尝试过win.datasetid,但后来我得到一个错误,即获胜未定义。
我做错了什么?我该如何访问这些数据?
答案 0 :(得分:0)
window.datasetid
不起作用,因为您正在警告浏览器window对象上的非标准属性。 win.datasetid
可能不起作用,因为您没有调用OpenAddSampleWindow
函数。这仍然是不好的做法,因为你使用全局来获得对胜利的引用。我认为更好的解决方案是不使用全局。
function OpenAddSampleWindow(datasetid)
{
var VIEW_WIDTH = $(window).width(); // returns width of browser viewport
var VIEW_HEIGHT = $(window).height(); // returns height of browser viewport
var win = Ext.create('widget.window', {
//...
return win;
}
然后调用该函数,然后根据需要调用局部变量。
Ext.onReady(function(){
var winA2 = OpenAddSampleWindow('a1');
alert(winA2.datasetid);
})