Javascript extJS入门

Javascript extJS入门,javascript,extjs,Javascript,Extjs,我不明白我做错了什么 我试图从服务器的JSON字符串填充表单,但它不起作用。我什么也没得到。我检查了这个对象,它是未定义的。我已经三天没有把头靠在墙上了。我需要一个简单的例子,工作,我会从那里建立 下面是我一直尝试使用的一个简单示例: var messages = new Ext.data.JsonStore({ url: '/user/' + user_id, method: 'GET', root: 'user', fields: [

我不明白我做错了什么

我试图从服务器的JSON字符串填充表单,但它不起作用。我什么也没得到。我检查了这个对象,它是未定义的。我已经三天没有把头靠在墙上了。我需要一个简单的例子,工作,我会从那里建立

下面是我一直尝试使用的一个简单示例:

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在那里。。。明亮的谢谢