在 Sencha Touch 2 中创建 xtype ?

Posted

技术标签:

【中文标题】在 Sencha Touch 2 中创建 xtype ?【英文标题】:Creating xtype in Sencha Touch 2 ? 【发布时间】:2012-03-04 10:02:52 【问题描述】:

在 Senchacon 2011 的 Depth Part 1 会话中关注 Sencha Touch 2 MVC 时,我再次遇到同样的错误:

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

通常在 extjs4 中我会使用 alias : widget.homepage 并且效果很好。但是,当按照 Ed Spencer 关于 Sencha Touch 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');
    
);

【问题讨论】:

我有相同的Uncaught Error: [Ext.createByAlias] Cannot create an instance of unrecognized alias: widget.somename,但我通过在 ext.application 的主视口之前声明内部视图来修复,如下所示:views: ['someViewWithXtype','anotherViewWithXtype','myViewport'], 【参考方案1】:

看起来他们改变了视图定义的位置 - 它进入 app.js 而不是控制器 main.js

因此,如果您将 views: ['Home'],main.js 剪切并粘贴到 app.js 正上方的 controllers: 定义中,您的示例应该可以工作。

从长远来看,我认为这是一件好事 - 基本上,您现在可以在一个地方定义视图、控制器、模型等。但遗憾的是,通过进行此更改,任何尝试使用最新最好的 Sencha 2 版本观看此视频的人都会遇到此问题。

编辑:发现另一个问题。当您到达在控制器中向联系表单添加参考的部分时,其语法也发生了变化 - 它进入了配置。将此添加到控制器对我有用:

config: 
    refs: 
        contactForm: 
            selector: '#contactForm'
        
    
,

【讨论】:

是的,我在 Sencha 论坛上看到了这个...猜猜 Sencha 的人此刻有很多想法... ;-) 谢谢...【参考方案2】:

如果有人遇到同样的问题,我定义的是配置属性 fullScreen (camelCase) 而不是全屏(小写)。

在我修复后问题就解决了。

【讨论】:

以上是关于在 Sencha Touch 2 中创建 xtype ?的主要内容,如果未能解决你的问题,请参考以下文章

Sencha Touch 2:在选项卡面板中创建嵌套列表

sencha touch :: 如何在 iFrame 中创建用于网站预览的面板

当“点击”列表项时在 Sencha Touch 中创建操作表

在 Sencha Touch 中访问静态属性

android 设备上的 sencha touch 2.0 应用程序无法正常工作

Sencha Touch - 资源文件的不同路径