EXT js model.load返回未定义的记录

时间:2012-12-27 15:19:23

标签: extjs extjs4.1

我正在做类似的Model.load:

//get a reference to the User model class
var User = Ext.ModelManager.getModel('User');

//Uses the configured RestProxy to make a GET request to /users/123
User.load(123, {
    success: function(user) {
        console.log(user.getId()); //logs 123
    }

});

在控制台中,我可以看到正在加载正确的User对象。正在调用正确的服务器端Web服务。它正在进入成功功能。但是user未定义。有谁知道为什么会这样?

2 个答案:

答案 0 :(得分:0)

根据您的描述,控制台显示一个用户对象(在JSON响应中只是一堆键/值对)。
您说用户未定义,但看起来您的意思是user.getId()未定义 来自Web服务器的JSON响应没有任何方法(如getId) - 只是键/值对。

编辑:您的代码看起来很像给定here的示例(大约中间向下)。
如果您修改日志记录,请说:

console.log("User: " + user.get('firstname'));

它会像您在JSON对象中显示的那样返回ttes吗?

答案 1 :(得分:0)

这是在黑暗中拍摄的,可能不是正确答案。

我相信你没有返回正确的JSON。首先,在模型上查看代理定义以及是否在其读者中设置了任何root属性将非常有用。

如果您尚未定义任何读者根目录,请尝试使用[]来扭曲您的JSON响应。

如果这有效,我会解释原因。