Sencha Touch 2商店多次加载[超出最大调用堆栈大小]

时间:2012-06-18 12:49:04

标签: sencha-touch-2

我在Sencha Touch 2 Store课上遇到了一个奇怪的问题。这就是我所拥有的:

  • 一个简单的视图 PollsList ,它定义了一个列表视图(商店属性设置为民意调查)。我已将所需的商店包括在内:requires:['Polls']
  • 商店类投票,模型属性设置为投票和虚拟数据属性,
  • 名为民意调查(最简单的)
  • 的模型类
  • 具有以下启动方法的app.js文件:

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

Ext.Viewport.add(pollsListView);

Ext.Viewport.setActiveItem(pollsListView);

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

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

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)

有什么想法吗?

1 个答案:

答案 0 :(得分: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);

多数民众赞成......

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