我是Sencha Touch的新手,虽然我对MVC知之甚少,但是当我尝试按照Sencha Touch 2的视频教程构建应用程序时出现错误:
未捕获的TypeError:无法调用undefined的方法'substring' 煎茶-触摸all.js:35
代码如下:
app.js:
Ext.Loader.setConfig({
enabled: true
});
Ext.application({
name: 'SBR',
controllers: [
'Main'
],
launch: function(){
Ext.create('Ext.TabPanel',{
fullscreen: true,
tabBarPosition: 'bottom',
items: [
{
xtype: 'homepanel'
},
{
xtype: 'carousel',
title: 'Blog',
iconCls: 'star',
html: 'Student Blog',
items: [
{
xtype: 'image',
src: 'resources/images/icon1.png'
},
{
xtype: 'image',
src: 'resources/images/icon2.png'
}]
},
{
title: 'Enter your Comments',
iconCls: 'star',
html: 'Enter your Comments'
}
]
});
}
});
Home.js - 视图
Ext.define('SBR.view.Home', {
extend: 'Ext.Panel',
xtype: 'homepanel',
config:{
title: 'Home',
iconCls: 'home',
html: 'Html through View'
}
});
Main.js - 控制器
Ext.define('SBR.controller.Main',{
extend: 'Ext.app.Controller',
views: ['Home'],
init: function(){
console.log('It is tested - Ok');
}
});
如果在不使用xtype的情况下在app.js中设置了视图(Home.js)的代码,它可以正常工作,但是当我定义一个视图并尝试通过app.js中的xtype访问视图时,它会虽然它在控制台中成功记录控制器中传递的消息,但是无法正常工作并抛出上述异常。
使用的浏览器:Chrome
IDE:Aptana
Sencha Touch版本:2.0
答案 0 :(得分:2)
您需要在app.js中添加所有View,Store和Model类,就像添加控制器一样:
controllers: [
'Main'
],
views : [
'Home'
]
这应该可以使它发挥作用。