未捕获的错误:[Ext.createByAlias] 无法创建无法识别别名的实例:小部件
Posted
技术标签:
【中文标题】未捕获的错误:[Ext.createByAlias] 无法创建无法识别别名的实例:小部件【英文标题】:Uncaught Error: [Ext.createByAlias] Cannot create an instance of unrecognized alias: widget 【发布时间】:2012-05-25 23:13:31 【问题描述】:这是一个我想实例化的简单视图:
Ext.define('myapp.view.Home',
extend 'Ext.Panel',
xtype : 'testpanel' ,
config:
title:'home',
iconCls:'home',
cls : 'home',
html: [
'<h1> Hello Guys </h1>',
'<p> some text goes here </p>'
].join("")
);
我已将视图添加到我的控制器中,如下所示:
Ext.define('myapp.controller.Main',
extend : 'Ext.app.Controller',
views : ['Home'],
...
我在我的应用程序中使用了 xtype,如下所示:
items:[
xtype : 'testpanel'
,
我仍然收到此错误:
未捕获错误:[Ext.createByAlias] 无法创建无法识别别名的实例:widget.testpanel
感谢您的帮助。
【问题讨论】:
1.您的命名空间应以大写字母开头。 2. 使用别名:'widget.x'。 3. 确保文件确实包含在内(你在 Firebug 中看到了吗?) 【参考方案1】:我想你忘了在 app.js - Ext.Application 的“views”数组中添加这个视图。请检查。
【讨论】:
【参考方案2】:添加这个可以解决吗?
requires:[
'myapp.view.Home'
]
【讨论】:
+1 ...是的,好点!每当您在 items 数组中使用 xtype 创建对象的惰性实例时,同一个类必须具有定义该 xtype 的类的完全限定名称。【参考方案3】:您需要使用带有小部件前缀的别名属性。
Ext.define('myapp.view.Home',
extend 'Ext.Panel',
alias : 'widget.testpanel' ,
config:
title:'home',
iconCls:'home',
cls : 'home',
html: [
'<h1> Hello Guys </h1>',
'<p> some text goes here </p>'
].join("")
);
【讨论】:
我认为你可以使用 alias 或 xtype 属性,我都试过了,他们提出了同样的错误【参考方案4】:我认为你需要检查文件是否在正确的目录中。
http://docs.sencha.com/ext-js/4-1/#!/guide/application_architecture
在这里你可以找到参考来了解什么是错误的。
检查对象 myapp.view.Home 是否在目录 app/view/Home.js 中
别名必须像别名:'widget.testpanel'
还有一个要求:['myapp.view.Home'],
你能发布 app.js 文件吗?
【讨论】:
【参考方案5】:当 xtype config/property 值(正在创建的组件/对象实例的)与类 xtype config/property 值的 xtype config 的实际名称不匹配时,我得到了这个异常。其中实例是其父组件的项目配置中组件的惰性实现。
【讨论】:
【参考方案6】:您可以通过在视图中添加控制器类来修复。
控制器:'ControllerClass',
【讨论】:
以上是关于未捕获的错误:[Ext.createByAlias] 无法创建无法识别别名的实例:小部件的主要内容,如果未能解决你的问题,请参考以下文章
致命错误:未捕获的错误:未找到“Omnipay\Omnipay”类
Bootstrap 设置错误:未捕获 ReferenceError:未定义 jQuery 和未捕获错误:Bootstrap 的 JavaScript 需要 jQuery
错误:`未捕获(承诺中)类型错误:无法读取未定义的属性'doc'`