我尝试将 Kitchen Sink -Sencha 应用程序中的Speakers示例克隆到我自己的应用程序中。
我复制了模型(Speaker.js
),商店(Speakers.js
),视图(BasicDataView.js
),Feed(feed.js
)
并将类路径的第一个元素的名称从 Kitchen Sink 更改为 MyFirstApp 。
我的app.js
如下所示:
Ext.Loader.setConfig({
enabled: true
});
Ext.application({
name: 'MyFirstApp',
controllers: ['Main'],
//loads app/store/Demos.js, which contains the tree data for our main navigation NestedList
stores: ['Speakers'],
launch: function() {
Ext.create('MyFirstApp.store.Speakers', { id: 'Speakers' });
MyFirstApp.util.Proxy.process('feed.js');
Ext.create('MyFirstApp.view.Viewport');
}
});
但是,应用程序无法启动。我的Chromium调试器告诉我以下内容:
Uncaught Error: [ERROR][Ext.data.Store#setModel] Model with name "MyFirstApp.model.Speaker" does not exist. Console.js?_dc=1395265484974:17
Ext.define.doWrite Console.js?_dc=1395265484974:17
Ext.define.write Writer.js?_dc=1395265484999:49
Ext.define.log Logger.js?_dc=1395265484923:132
(anonymous function) Logger.js?_dc=1395265484923:150
Ext.define.applyModel Store.js?_dc=1395265486959:901
Ext.apply.generateSetter.setter sencha-touch.js:5544
Base.implement.initConfig sencha-touch.js:4982
Ext.define.constructor Store.js?_dc=1395265486959:833
Ext.apply.create.Class sencha-touch.js:5270
(anonymous function)
Ext.ClassManager.instantiate sencha-touch.js:7011
Ext.apply.factory sencha-touch.js:10120
Ext.define.instantiateStores Application.js?_dc=1395265486668:770
Ext.define.onDependenciesLoaded Application.js?_dc=1395265486668:685
Ext.apply.refreshQueue sencha-touch.js:8260
Ext.apply.refreshQueue sencha-touch.js:8261
Ext.apply.refreshQueue sencha-touch.js:8261
Ext.apply.refreshQueue sencha-touch.js:8261
Ext.apply.refreshQueue sencha-touch.js:8261
Ext.apply.refreshQueue sencha-touch.js:8261
Ext.apply.onFileLoaded sencha-touch.js:8589
(anonymous function) sencha-touch.js:3270
Ext.apply.injectScriptElement.onLoadFn
可能出了什么问题?我想我尝试比较 Kitchen Sink 应用程序
我的应用程序数十次,除了bootstrap.js
的内容外,没有看到差异。
该应用的整个代码为here。
答案 0 :(得分:3)
我的建议是首先你遵循任何Sencha教程。我列出了一些你的错误:
models
和views
。答案 1 :(得分:0)
代码缺少app.js中模型的声明。不确定为什么,但这解决了问题。