0

ExtJs4.1を使用しています。

私はこのような店を持っています:

var predictTargetStore = new Ext.create('Ext.data.Store',{
    autoLoad : false,
    fields: ['label','value'],
    proxy : {
        type : 'ajax',
        reader : {
            type : 'json',
            root : 'predictTargetList'
        }
    }
});

しばらくしてからpredictTargetStore.load({url:'getPredictTargetList.action'})を実行します。これを実行した後、predictTargetStoreを使用したコンボボックスに選択肢があります。しかし、ストアから1つのアイテムを取得しようとすると、失敗しました。次のようになります。

predictTargetStore.load({
    url : 'getPredictTargetList.action'
});
var value = predictTargetStore.getAt(0).get('value');

予測ターゲットストア.getAt(0)がnullで、predictTargetStore.getCount()が0であることがわかりました。では、ストアの1つのアイテムを取得するにはどうすればよいですか?どうもありがとうございます!

4

4 に答える 4

1

サーバーの応答を待ちます:

predictTargetStore.load({
    url : 'getPredictTargetList.action',
    callback: function () {
        var value = predictTargetStore.getAt(0).get('value');
    }
});

callback関数の詳細はこちら

于 2013-02-28T12:59:48.340 に答える
1

私は試しました、以下はトリックを行います:

user.load({
    scope: this,

    callback: function(records, operation, success) {
    user.each(function(record) {
        console.log(record.get('name'));
    });
    }
});
于 2013-03-01T01:42:11.720 に答える
0

私は次のコードで同様の問題に遭遇しました: `

Ext.define('MyApp.model.EOrder.Model.TestRequest', {
    extend : 'Ext.data.Model',
    fields : [{
            name : 'testId',
            type : 'int'
        }, {
            name : 'testCode'
        }, {
            name : 'testName'
        }, {
            name : 'price',
            type : 'float'
        }
    ]
});

var testStagingStore = Ext.create('Ext.data.Store', {
        model : 'MyApp.model.EOrder.Model.TestRequest',
        storeId : 'StagingTestRequest',
        autoLoad : false,
        proxy : {
            type : 'ajax',
            url : 'LOINC.json',
            reader : {
                type : 'json',
                root : 'TestRequest'
            }
        },
        listeners : {
            load : function () {
                loadedCount = this.data.getCount();
                console.log('json file loaded. processed records:' + loadedCount);
            }
        }
    });

testStagingStore.load();

console.log(testStagingStore.data.items);    // in chrome "network" console, I know my json file was loaded successfully. But here I get nothing!

`

データプロパティが適切に設定されているかどうかわからない。

getAtはデータプロパティからレコードを取得するため、同じ問題があると思います。

于 2013-02-28T15:12:41.590 に答える
-1

urlプロキシの内部について言及するかsetProxy()、ストアのメソッドを使用してURLを設定する必要があると思います。これを行わないと、値が返されない可能性があります。詳細については、senchaドキュメントを確認してください。

于 2013-02-28T09:38:28.937 に答える