【发布时间】:2013-05-15 10:33:50
【问题描述】:
initialize: function() {
var store = {};
var item = {};
var me = this;
Ext.Ajax.request({
url: "some_valid_url",
success: function(response) {
try {
var parser = new DOMParser();
var xml = parser.parseFromString(response.responseText, "text/xml");
store = Ext.create('Ext.data.Store', {
autoLoad: true,
fields: ['temp', 'low', 'high', 'desc', 'icon'],
data: xml,
proxy: {
type: 'memory',
reader: {
type: 'xml',
rootProperty: 'current',
record: 'day'
}
}
});
item = Ext.create("Ext.Container", {
var bla = "hello world",
})
} catch (err) {
//err
}
}
});
}
console.log("STORE AND ITEM");
console.log(item);
console.log(store);
为什么item 和store 还给null 对象?
但是我可以看到它正在解析一些数据,就好像我将 console.log 放在 store 和 item 元素之间我会得到一个有效的元素。
STORE AND ITEM
Object {} ArticleWeatherList.js:105
Object {} ArticleWeatherList.js:106
【问题讨论】:
-
所以我需要
ajax请求之外的这些项目 -
特别是在这种情况下,您需要重构异步逻辑:根据整体情况,一种解决方案是在 AJAX 调用完成时运行的初始化函数中添加回调函数.
标签: javascript oop scope