0

所以我试图在 extjs 中配置一个读取“users.json”文件的 ajax 代理。我正在尝试将我的商店映射到 users.json 文件。这是我的商店:

Ext.define('AM.store.Users', {
    extend: 'Ext.data.Store',
    model: 'AM.model.User',
    fields: ['name', 'email']
}

这是我的 users.json 文件:

{
    success: true,
    users: [
        {name: 'Ed Hayes',              email: 'aaa'},
        {name: 'Tommy Gunz', email: 'tommy@sencha.com'},
        {name: 'Clay Banks',    email: 'clay@BoA.com'},
        {name: 'Billy Joe', email: 'billyJgeemail.com'},
        {name: 'James Bond', email: 'goldenGun@HQ.com'}
    ]
}

最后,我的模型:

Ext.define('AM.model.User', {
    extend: 'Ext.data.Model',
    fields: ['name', 'email'],
    proxy: {
        type: 'ajax',
        url : 'data/users.json',
        reader: {
            type: 'json',
            root: 'users'
        }
    }
});

// Uses the User Model's Proxy
Ext.create('Ext.data.Store', {
    model: 'AM.model.User'
});

现在它似乎不起作用。有没有办法做到这一点?(这是我应该做的事情吗?)

4

3 回答 3

1

您想在商店中设置代理,而不是在您的案例中设置模型。另外,我不确定您设置模型的方式是否可行,以下是我设置模型和存储问题的方式:

Ext.define("AM.store.User", {
    extend: "Ext.data.Model",
    fields: [
        {name:"name",  type:"string"},
        {name:"email", type:"string"}
    ]
});

// Uses the User Model's Proxy
var myStore = Ext.create('Ext.data.Store', {
    model: 'AM.store.User',
    proxy: {
        type: 'ajax',
        url : 'data/users.json',
        reader: {
            type: 'json',
            root: 'users'
        }
    },
    autoLoad: true
});
于 2013-07-24T14:13:44.743 回答
0

您想在商店上设置代理您可以通过此过程映射您的商店。这里代码。

Ext.create('Ext.data.Store', {
    model     : 'AM.store.User',
    idProperty: 'id',
    autoLoad  : false,
    autoSync  : true,

    remoteSort: true,
    pageSize  : 10,
    proxy: {
        type    : 'ajax',
        noCache : false,
        limitParam: 'limit',
        startParam: 'start',
        url : 'data/users.json',
        actionMethods: {
            create  : 'POST',
            read    : 'GET',
            update  : 'PUT',
            destroy : 'DELETE'            
        },
        reader: {
            type            : 'json',
            root            : 'data',
            totalProperty   : 'total',
            successProperty : 'success',
            messageProperty : 'message',
            implicitIncludes: true
        },
        simpleSortMode  : true
    },
    sorters: [{
        property: 'id', 
        direction: 'asc'
    }]
});
于 2013-07-25T08:21:24.933 回答
0
  1. 要么使用model你的属性store,要么使用fields属性。不要同时使用两者。

  2. 您不需要successjson 中的属性(您只需要某些 extjs 表单操作)

  3. 当您已经声明了自己的商店类型时,为什么还要使用模型创建默认商店?

  4. 你可以把或proxy。如果没有,则将继承其' 。storemodelstoremodelproxy

于 2013-07-24T18:25:46.517 回答