在 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 :: 如何在 iFrame 中创建用于网站预览的面板
当“点击”列表项时在 Sencha Touch 中创建操作表