0

リストをバックアップするために使用される Store があります。リスト項目をタップすると、「詳細」パネルが表示されます。詳細パネルのボタンの 1 つは、サーバー側の操作を開始する POST 要求を開始します。これにより、サーバー側のステータスが「アイドル」から「進行中」に変わります。詳細パネルの UI を更新するには、Model クラスで load() を呼び出して、このインスタンスの最新データを読み込みます。

MyApp.model.Server.load(serverId, 
    success: function(record, operation) {
        // code that updates the current view
    }
});

ただし、これは基になるストアのインスタンスを更新していないようです。そのため、リストに戻ると、タップしたサーバーの古いデータがあります (まだ「アイドル」と表示されます)。

更新されたサーバー インスタンスを取得して、ストア内のそのレコードだけを更新する方法はありますか? 1 つのレコードの UI を更新するためだけにストア全体をリロードする必要はありません。

ストアでインスタンスを更新しようとしましたが、役に立ちませんでした:

Ext.getStore('Server').getById(serverId).data = record.data;

ここで何か不足していますか?それとも、1 つのレコードの更新されたステータスを取得するためだけに、ストア全体をリロードする必要がありますか?

4

1 に答える 1

1

いいえ、すべてのストアをリロードして、記録データを手動で適切に更新する必要はありません。

正しい:

var record = Ext.getStore('Server').first();

record.set(form.getData());

record.save();

于 2012-10-04T20:11:40.000 に答える