0

元の記事http://www.sencha.com/learn/the-mvc-application-architectureをフォローしていて、そのようなストアがあるとします。

Ext.define('AM.store.Users', {
    extend: 'Ext.data.Store',
    model: 'AM.model.User',
    autoLoad: true,

    proxy: {
        type: 'ajax',
        url: 'data/users.json',
        reader: {
            type: 'json',
            root: 'users',
            successProperty: 'success'
        }
    }
});

そして、無限スクロールグリッドを実装することにしました。これを行うには、手動で削除autoLoad: trueして呼び出す必要があります。store.guaranteeRange(...)

では、そうするのに最適な場所はどこですか?

4

2 に答える 2

1

グリッドをレンダリングする場所。メソッドを上書きafterRender()するか、モーダルグリッド/ダイアログの場合はストアをロードしてから表示することができます。

カップルのサイドノート(私はautoLoad通常falseすべての店に当てはまるポイントを作ろうとしています:

  • アプリケーションで認証を使用する場合はautoLoad、すべてのストアで無効にする必要があります。
  • カップルストアが複数ある場合(たとえば5-10 +?)、それも無効にすることを強くお勧めします。アプリケーションの起動時にそれらすべてを同時にロードする必要はありません。
  • 多くの場合、ストアのロード後に何かが発生したことを保証する必要があります。その後、再度無効autoLoadにして、ロードイベントとload()ストアを手動でサブスクライブします。
于 2012-04-26T12:00:16.753 に答える
1
Ext.define('AM.store.Users', {
    extend: 'Ext.data.Store',
    model: 'AM.model.User',
    autoLoad: true,
    remoteSort: true,
    buffered: true,
    pageSize: 100,
    proxy: {
        type: 'ajax',
        url: '/postdata/list',
        limitParam: 'size',
        startParam: undefined,
        reader: {
            type: 'json',
            root: 'data',
            successProperty: 'success'
        }
    }
});

ここでデモhttp://ext4all.com/post/extjs-4-1-grid-infinite-scroll-in-mvc

于 2012-04-26T20:17:49.853 に答える