0

Sencha Touch 2 Store 类有一个奇怪的问题。这是我所拥有的:

  • 一个简单的PollsList视图,它定义了一个列表视图(将 store 属性设置为Polls)。我已经包括了所需的商店如下:requires:['Polls']
  • 模型属性设置为Poll和虚拟数据属性的存储类Polls ,
  • 一个名为Poll的模型类(最简单的可能),
  • 具有以下启动方法的 app.js 文件:

var pollsListView = Ext.create('PollsList');

Ext.Viewport.add(pollsListView);

Ext.Viewport.setActiveItem(pollsListView);

我还stores: ['Polls']根据需要在 app.js 中包含了声明。

现在,奇怪的是当我访问PollsList视图时,轮询存储正在无限期地加载,直到出现以下错误:

Uncaught RangeError: Maximum call stack size exceeded sencha-touch.js:598

堆栈似乎在以下调用上循环:

Ext.ClassManager.instantiate sencha-touch.js:6378

(anonymous function) sencha-touch.js:3198

(anonymous function) app/store/Polls.js:4

Ext.apply.globalEval sencha-touch.js:598

Ext.apply.globalEval sencha-touch.js:599

Ext.apply.loadScriptFile sencha-touch.js:7673

Ext.apply.require sencha-touch.js:7831

Ext.apply.syncRequire sencha-touch.js:7695

(anonymous function)

任何的想法?

4

1 回答 1

0

看起来很奇怪,做了很多次,但没有出错。

任何方式,尝试删除setActiveItem因为只有一个视图,它会将其视为活动。

从代码中删除require行,因为目前似乎不需要它。(只是因为我想让这个示例运行)。

现在,尝试初始化存储,如

var store = Ext.create("YourStore")   // 
var listControl = Ext.craeate("YourList" ,{store : "aboveCreatedStore" , ..... });
listControl.setData( {name :'hello'} ); // hoping the model is having one String type field
Ext.ViewPort.add(listControl);

就是这样...

上面给出的代码不是一个完整的解决方案(它就像一个补丁),但它是为了让你知道你在当前代码中做错了什么。

于 2012-06-18T13:13:41.700 回答