1

モデルにプロキシが定義されています。

モデルで定義されたものを使用したいので、モデルを指すストアを定義しましたが、プロキシはありません。

store.autoLoad: true は機能していません

コントローラーから明示的に呼び出す必要があります

var store = this.getMyStore();
store.load();

これは予想される動作ですか?

  1. これはオートロードの目的ではありませんか?
  2. ストアでプロキシが定義されている場合にのみ機能しますか?

コード:

モデル/MyThing.js

Ext.define('MyApp.model.MyThing', {

  extend: 'Ext.data.Model',

  fields: ['id', 'reference'],

  proxy:
  {
    type: 'ajax',
    url: 'MyThings'
  }
});

store/MyThings.js

Ext.define('MyApp.store.MyThings', {
  extend: 'Ext.data.Store',
  autoLoad: true,
  autoSync: false,
  model: 'MyApp.model.MyThing'
});
4

2 に答える 2

2

どのようにストアを作成しているかを示していません。次のように呼び出すとすぐに、FireBug に HTTP GET 要求が表示されます (FireFox を使用していて、それがあると仮定します)。

Ext.create('MyApp.store.MyThings');

コードをアプリに追加したところ、期待どおりの結果が得られたので、動作するはずです。

アップデート:

投稿された独自の回答に応じて、その構成オブジェクトをautoLoad(ではなくautoLoad: true)として指定して、明示的に呼び出すことなく同じ機能を取得できますstore.load()

于 2012-07-11T15:20:14.243 に答える
0

実際、これは少し初心者向けのことです。私は少し熱心なビーバーでした。

ロードが完了する前にストアを見ていました(非同期として)。

ベスト プラクティスは、load() 関数のコールバックをサブスクライブしてから何かを行うことです...

store.load({
    scope   : this,
    callback: function(records, operation, success) {
        //the operation object contains all of the details of the load operation
        console.log(records);
    }
});
于 2012-07-12T07:51:29.910 に答える