未捕获的错误:[Ext.createByAlias]无法创建无法识别的别名实例:小部件

时间:2012-05-25 23:13:31

标签: sencha-touch extjs

这是一个我想要实例化的简单视图:

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

感谢您的帮助。

6 个答案:

答案 0 :(得分:16)

我想你忘了在app.js中添加这个视图 - Ext.Application的“views”数组。请检查。

答案 1 :(得分:4)

可以通过添加它来修复吗?

requires:[
  'myapp.view.Home'
]

答案 2 :(得分: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("")
    }
});

答案 3 :(得分:1)

我认为您需要检查文件是否在正确的目录中。

http://docs.sencha.com/ext-js/4-1/#!/guide/application_architecture

在这里你可以找到裁判来理解可能出错的地方。

检查对象myapp.view.Home是否在目录app / view / Home.js

别名必须像别名:'widget.testpanel'

和a要求:['myapp.view.Home'],

你甚至可以发布app.js文件吗?

答案 4 :(得分:1)

当xtype配置/属性值(正在创建的组件/对象实例)与类xtype config / property值的xtype配置的实际名称不匹配时,我收到此异常。实例是其父组件的items config中的组件的延迟实现。

答案 5 :(得分:-1)

您可以通过在视图中添加控制器类来修复。

controller:&#39; ControllerClass&#39;,