8

これは私のコードです

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」になるようにするにはどうすればよいですか。

(追記:申し訳ありませんが、私の英語はあまり上手ではありません。)

4

1 に答える 1

12

応答に項目が 1 つしかない場合は、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
    });
});​
于 2012-11-15T11:35:20.600 に答える