如何从Ext.data.Store获取价值?

时间:2012-11-15 11:11:57

标签: extjs

这是我的代码

var store = {
    user_store: new Ext.data.Store({
        autoLoad: false,
        proxy: new Ext.data.HttpProxy({
            url: 'a/b/c',
        }),
        remoteSort: true,
        baseParams: {

        },
        reader: new Ext.data.JsonReader({
            totalProperty: 'total',
            root: 'root',
            fields: ['roles']
        })
    })
};
store.user_store.load();​

这是我的json

{"roles":"2"}

我想问。如何获得角色的值为“2”。

(PS:对不起,我的英语不太好。)

1 个答案:

答案 0 :(得分:13)

如果响应中只有一个项目,则可以向load方法添加回调函数:

var store = {
    user_store: new Ext.data.Store({
        autoLoad: false,
        proxy: new Ext.data.HttpProxy({
            url: 'a/b/c',
        }),
        remoteSort: true,
        baseParams: {

        },
        reader: new Ext.data.JsonReader({
            totalProperty: 'total',
            root: 'root',
            fields: ['roles']
        })
    })
};
store.user_store.load(function(){
    this.getAt(0).get('roles')
});​

如果回复包含多个项目,例如:[{"roles":"2"},{"roles":"1"}] 您可以迭代商店以检索所有值。

store.user_store.load(function(){
    this.each(function(record){
       var roles = record.get('roles');
       // Do stuff with value
    });
});​