ajax - 如何在ExtJs中从ajax加载json数据

标签 ajax json extjs model extjs4.2

我尝试开始使用 ExtJs,但我有一个非常基本的问题。
我有一个模型

Ext.define('Mb.model.User', {
    extend: 'Ext.data.Model',
    fields: [
        { name: 'id', type: 'int' },
        { name: 'name', type: 'string' },
        ...
    ],
    proxy: {
        type: 'ajax',
        url : 'server/gui/getUser.php'
    }
});

getUser.php 返回一个 json 字符串(它是登录的用户,而不是用户表中的用户):

{"id":"1","name": ... }

我尝试了以下方法来加载数据,但收到错误Uncaught TypeError: Object [object Object] has no method 'load'

Ext.define('Mb.Application', {
    ...
    launch: function() {
        ....
        user = Ext.create('Mb.model.User');
        user.load();
    }
});

加载该数据的正确方法是什么?


另一个问题:这里使用Model有什么好处?

我不能做这样的事情吗?

Ext.Ajax.request({
    url: 'server/gui/getUser.php',
    success: function(response){
    var user = Ext.JSON.decode(response.responseText);
    }
});  

最佳答案

在这种情况下,load 是一个静态方法。您可以通过传递 id 从服务器加载模型。

Mb.model.User.load(id, {
    success: function(rec) {
        console.log('loaded', rec.getData());
    }
});

使用模型的优点是抽象层,以及使用模型获得的额外功能。

关于ajax - 如何在ExtJs中从ajax加载json数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19220903/

相关文章:

javascript - 无法解决的 CORS 问题!如何在MacOS上禁用Chrome的同源策略?

ajax - symfony2 - 如何创建没有值的 "entity"类型的表单字段

javascript - 如何制作一个允许我根据选择显示数据的组合框?

javascript - 如何在单选按钮上执行不同的查询?

javascript - 如何使用多个相同的键但不同的值来解析这种类似 JSON 的结构?

ios - 使用 Swift 3 进行 JSON 解析

php - 将.txt文件转换为数组并进行比较

python - 使用 django 模板将 json 填充为 html

javascript - Extjs 3.2。 GridView -商店关联

javascript - 使用 ExtJs 自动完成文本字段