View sencha touch 2视图id返回未定义

View sencha touch 2视图id返回未定义,view,reference,controller,sencha-touch-2,View,Reference,Controller,Sencha Touch 2,我已声明一个视图,如下所示: Ext.define('App.view.About'{ 扩展:“Ext.Panel”, id:'关于', xtype:'aboutpanel',//用作Main.js的引用 配置:{ 标题:"关于",, iconCls:'图标文件', 可滚动:对, styleHtmlContent:对, 项目:{ 停靠:“顶部”, xtype:'标题栏', 标题:“关于” }, html:“此页面将包含基本信息。” } }); 我还声明了一个控制器,如下所示: Ext.defi

我已声明一个视图,如下所示:

Ext.define('App.view.About'{
扩展:“Ext.Panel”,
id:'关于',
xtype:'aboutpanel',//用作Main.js的引用
配置:{
标题:"关于",,
iconCls:'图标文件',
可滚动:对,
styleHtmlContent:对,
项目:{
停靠:“顶部”,
xtype:'标题栏',
标题:“关于”
},
html:“此页面将包含基本信息。”
}
});
我还声明了一个控制器,如下所示:

Ext.define('App.controller.About'{
扩展:“Ext.app.Controller”,
配置:{
参考文献:{
关于:“#关于”
}
},
init:函数(){
var me=这个;
me.getAbout().setHtml('Hello');//仅用于测试
}             
});     
然而,在Chrome的开发者工具中,我得到一个错误“无法调用未定义的方法'setHtml'。因此,据我所知,控制器没有通过id获取视图。我使用Sencha Touch 2.2.1


需要帮忙吗?提前感谢,

您将无法访问控制器的
init()
函数中的REF。要获得类似的功能,您可以在
关于
面板上作为
初始化
侦听器执行代码:

Ext.define('App.controller.About'{
扩展:“Ext.app.Controller”,
配置:{
参考文献:{
关于:“#关于”
},
控制:{
关于:{
初始化:“initAbout”
}
}
},
initAbout:function(){
var me=这个;
me.getAbout().setHtml('Hello');//现在可以工作了!
}             
});

作为旁注,在定义中为组件指定
id
是多余的。您应该在实例化组件时保留
id
(在这种情况下,您可能应该使用
itemId
而不是
id

是的,现在可以使用了,谢谢。但是,当我在config节中删除id并添加itemId时,它不起作用。对于itemId,正确的代码是什么?另外,另一个注意事项是,一旦我在视图的配置中删除了items节,就不会显示任何标题。然而,Main.js文件中的相同代码(不带items节)会导致一个具有不同背景的标题…我还想指出,我有另一个扩展Ext.carousel.carousel的视图控制器,在没有控件节的情况下,我可以从init函数访问refs。。。为什么会这样?