未捕获-类型错误,不能叩法 - 子 - 的 - 未定义 - 煎茶触摸-all.js

时间:2013-05-08 11:42:55

标签: model-view-controller extjs sencha-touch

我是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

1 个答案:

答案 0 :(得分:2)

您需要在app.js中添加所有View,Store和Model类,就像添加控制器一样:

controllers: [
        'Main'
],
views : [
    'Home'
]

这应该可以使它发挥作用。