未捕获的错误:[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'`

致命错误:未捕获的错误:未找到类“用户名”

Laravel - 致命错误:未捕获的错误:找不到类'Auth'

未捕获的类型错误未定义不是函数