Javascript extJS入门
我不明白我做错了什么 我试图从服务器的JSON字符串填充表单,但它不起作用。我什么也没得到。我检查了这个对象,它是未定义的。我已经三天没有把头靠在墙上了。我需要一个简单的例子,工作,我会从那里建立 下面是我一直尝试使用的一个简单示例:Javascript extJS入门,javascript,extjs,Javascript,Extjs,我不明白我做错了什么 我试图从服务器的JSON字符串填充表单,但它不起作用。我什么也没得到。我检查了这个对象,它是未定义的。我已经三天没有把头靠在墙上了。我需要一个简单的例子,工作,我会从那里建立 下面是我一直尝试使用的一个简单示例: var messages = new Ext.data.JsonStore({ url: '/user/' + user_id, method: 'GET', root: 'user', fields: [
var messages = new Ext.data.JsonStore({
url: '/user/' + user_id,
method: 'GET',
root: 'user',
fields: [
{name: 'user_id'},
{name: 'first_name'}
],
listeners: {
load: messagesLoaded
}
});
messages.load();
function messagesLoaded(messages) {
console.log(messages);
}
以下是我的JSON字符串:
{"success":"true","user":{"user_id":"2","first_name":"Test","last_name":"Test","email":null,"password":null,"city_id":"6379","birth_date":"2009-06-09","gender":"F","created_on":"2009-06-01 17:21:07","updated_on":"2009-06-14 17:20:14","active":"Y","cuisine_id":null}}
我真的不知道我做错了什么,但我的JSON字符串没有加载。谢谢 好了,你就快到了,但有一个问题。根必须是数组。即使它是一个只有1个对象的数组Ext.data.JsonReader(Ext.data.JsonStore的默认读取器)只接受结果数组
所以javascript看起来很好,但是服务器返回的JSON对象需要看起来更像这样
{
"success":"true",
"user": [{
"user_id":"2",
"first_name":"Test",
"last_name":"Test",
"email":null,
"password":null,
"city_id":"6379",
"birth_date":"2009-06-09",
"gender":"F",
"created_on":"2009-06-01 17:21:07",
"updated_on":"2009-06-14 17:20:14",
"active":"Y",
"cuisine_id":null
}]
}
还有一件事,consoloe.logging你的商店对象会在Firebug中产生类似[object]的东西。。。不太有用。您应该选择console.dir,或者记录实际数据
关于加载表单的一条注释是,一旦加载完JSON(即使本例没有显示)。在尝试加载数据之前,请确保表单已实际呈现,例如,如果尝试使用类似form.loadRecord的内容。否则,您将得到一个空表单,并且没有错误。当您查看XMLHttpRequest时,Fiddler或Firefox会说什么?谢谢-这是我的问题。我将“user”标记改为“data”,并从代码中删除了根,它就成功了。慢慢地,但肯定地,我正在弄明白这一点……每天都有新的东西。自从firebug允许我使用console.log以来,我一直在愉快地使用它。。。甚至不知道console.dir在那里。。。明亮的谢谢