2012-03-04 52 views
3

当从2011年Senchacon在深度第一部分会议结束后煎茶触摸MVC 2我一直从头再来得到同样的错误:在Sencha Touch 2中创建xtype?

Uncaught Error: [Ext.createByAlias] Cannot create an instance of 
unrecognized alias: widget.homepage 

Normaly在extjs4我会用别名:widget.homepage它工作得很好。但是,在煎茶触摸MVC应用程序如下因素埃德斯宾塞的教程时,我不断收到同样的错误:

APP.JS

Ext.Loader.setConfig({ 
    enabled:true 
}); 

Ext.application({ 
    name: 'Sencha', 

    controllers: ['Main'], 

    launch: function() { 
     Ext.create("Ext.tab.Panel", { 
      fullscreen: true, 
      tabBarPosition: 'bottom', 
      items: [ 
       { 
        xtype: 'homepage' 
       } 
      ] 
     }); 
    } 
}); 

视图(HOME.JS)

Ext.define('Sencha.view.Home', { 
    extend: 'Ext.Panel', 
    xtype: 'homepage', 
    config: { 
     title: 'Home', 
     iconCls: 'home', 
     cls: 'home', 
     html: [ 
      '<img src="http://staging.sencha.com/img/sencha.png" />', 
      '<h1>Welcome to Sencha Touch</h1>', 
      "<p>You're creating the Getting Started app. This demonstrates how ", 
      "to use tabs, lists and forms to create a simple app</p>", 
      '<h2>Sencha Touch (2.0.0)</h2>' 
     ].join(""); 
    } 
}); 

控制器(MAIN.JS)

Ext.define('Sencha.controller.Main', { 
    extend: 'Ext.app.Controller', 
    views: ['Home'], 
    init: function() { 
     console.log('inited'); 
    } 
}); 
+0

我有同样的'未捕获的错误:[Ext.createByAlias]无法创建无法识别的别名的实例:widget.somename',但我通过在ext.application的主视口之前声明内部视图来修复,如下所示:'views :['someViewWithXtype','anotherViewWithXtype','myViewport'],' – RaphaelDDL 2012-03-06 18:21:36

回答

7

看起来他们改变了这里的你的观点定义老话 - 它会在app.js,而不是控制器,main.js

所以,如果你剪切和main.js正上方的controllers:定义粘贴views: ['Home'],app.js,你的榜样应该工作。

从长远来看,这在我看来是一件好事 - 基本上你现在可以在一个地方定义你的视图,控制器,模型等等。但令人遗憾的是,通过进行这一改变,任何试图使用最新版本的Sencha 2与此视频一起关注的人将会遇到这个问题。

编辑:发现另一个问题。当你到达你在控制器中添加引用到联系表单的部分时,它的语法也发生了变化 - 它进入了一个配置。添加此控制器为我工作:

config: { 
    refs: { 
     contactForm: { 
      selector: '#contactForm' 
     } 
    } 
}, 
+0

是的,我在Sencha论坛上看到了这个...猜猜Sencha的家伙在他们的脑海中有很多想法...... ;-)谢谢.. 。 – 2012-03-04 19:24:30

0

万一有人有同样的问题,我是定义配置属性全屏(驼峰),而不是全屏(小的情况下)。

当我修复问题解决后。