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: '购物车内容',

商店:“购物车”,

...其他的东西...

});

当我在没有 CartContents 的“商店”属性的情况下运行我的应用程序时,网格播放没有问题。不幸的是,将“store”设置为数据存储区的 ID,当我在 Firebug 中运行应用程序时,我看到以下失败:

时间戳:2013 年 1 月 16 日晚上 9:19:08

错误:TypeError:me.store 未定义

源文件:<my-url-to>/ext-all-debug.js

线路:94926

注意我必须输入 <my-url-to> 因为这个发布应用程序不允许我使用确切的 URL 发布这个。

显然,该应用程序没有找到 CartStore,尽管根据文档和示例中的信息,它应该找到。

有人能告诉我我是否遗漏了什么吗?如何让我的 Grid 找到数据存储?

有人请指教。

2013 年 1 月 17 日更新:我接受了以下两个答案中提供的建议(感谢您的快速回复)。新的视图对象片段如下所示:

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

扩展:'Ext.grid.Panel',

别名:'widget.CartList',

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

title: '购物车内容',

商店:'CartStore',

...其他的东西...

});

不幸的是,我仍然遇到同样的错误。我确实尝试过刷新缓存,以防浏览器没有获取更新的页面。这也没有任何效果。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 回答