2

Sencha MVC の例をガイドとして使用して、次のデータストアを作成しました。

Ext.define('CART.store.CartStore', {
extend: 'Ext.data.Store',
model: 'CART.model.CartModel',
autoLoad: true,
storeId: 'thecart',

proxy: {
    type: 'ajax',
    api: {
        read: 'app/testdata/items.json'
    },
    reader: {
        type: 'json',
        root: 'Items',
        successProperty: 'success'
    }
}
});

次のフラグメントが示すように、データストアを参照するグリッド パネルが定義されています。

Ext.define('CART.view.CartContents',{

拡張: 'Ext.grid.Panel',

エイリアス: 'widget.CartList',

title: 'ショッピングカートの中身',

ストア: 'thecart',

...他のもの...

});

CartContents の「store」属性なしでアプリを実行すると、グリッドは問題なく表示されます。残念ながら、「store」がデータストアの ID に設定されているため、Firebug でアプリを実行すると、次のエラーが表示されます。

タイムスタンプ: 2013 年 1 月 16 日 21:19:08

エラー: TypeError: me.store が定義されていません

ソースファイル: <my-url-to>/ext-all-debug.js

ライン: 94926

この投稿アプリでは、正確な URL でこれを投稿できないため、 <my-url-to> を入力する必要があったことに注意してください。

明らかに、アプリは CartStore を見つけていません。ドキュメントと例の情報によると、そうすべきであるという事実にもかかわらずです。

私が何か欠けているかどうか誰かに教えてもらえますか?グリッドでデータストアを見つけるにはどうすればよいですか?

誰かアドバイスください。

2013 年 1 月 17 日更新: 以下の 2 つの回答に記載されているアドバイスを受けました (迅速な回答に感謝します)。新しいビュー オブジェクト フラグメントを以下に示します。

Ext.define('CART.view.CartContents',{

拡張: 'Ext.grid.Panel',

エイリアス: 'widget.CartList',

必要: ['CART.store.CartStore'],

title: 'ショッピングカートの中身',

ストア: 'カートストア',

...他のもの...

});

残念ながら、私はまだ同じエラーが発生しています。ブラウザが更新されたページを取得していない場合に備えて、キャッシュをフラッシュしてみました。これも効果はありませんでした。me.store はまだ未定義のようです。

4

2 に答える 2

3

以下をカスタム カート コンポーネントに追加します。

requires: ['CART.store.CartStore']
于 2013-01-17T02:48:38.037 に答える
2

ID プロパティは、ビュー ストアの設定には使用されません

これを置き換えてみてください:

store: 'thecart',

これに:

store: 'CartStore',

そして追加する必要があります

requires: ['CART.store.CartStore']

オンビュークラス

于 2013-01-17T11:04:23.593 に答える