Sencha touch 如何在sencha中访问控制器中的ItemId
我在主视图中声明了contain。那么如何在控制器中访问。这里有democontainer和demopanel。那么如何访问它Sencha touch 如何在sencha中访问控制器中的ItemId,sencha-touch,sencha-touch-2,Sencha Touch,Sencha Touch 2,我在主视图中声明了contain。那么如何在控制器中访问。这里有democontainer和demopanel。那么如何访问它 Ext.define('MyApp.view.Main', { extend: 'Ext.Panel', alias: 'widget.mainpage', config: { width: 710, margin: '10px auto 0', itemId: 'democ
Ext.define('MyApp.view.Main', {
extend: 'Ext.Panel',
alias: 'widget.mainpage',
config: {
width: 710,
margin: '10px auto 0',
itemId: 'democontainer',
layout: {
type: 'hbox'
},
items: [
{
xtype:'container',
cls:'wholeMenuWrap',
margin: '65px 0 0 0',
width: 175,
items:[
....and
{
xtype: 'homepage',
cls:'homepage-wrap',
itemId: 'demopanel',
layout: {
type: 'fit'
}
},
{
xtype:'container',
layout: 'vbox',
margin: '65px 0 0 0',
width: 185,
items:[
{
xtype: 'titlebar',
cls:'roundedToolbar',
config: {
main:this,
profile: Ext.os.deviceType.toLowerCase(),
refs:{
myContainer: 'mainpage',
},
control: {
'mainpage': {
activate: 'onActivate',
itemtap: 'onItemTap',
},
'mainpage textfield[itemId=searchBox]' : {
//clear the input text box
clearicontap : 'onClearSearch',
//on every key stroke
keyup: 'onSearchKeyUp'
},
我想像这样访问控制器,但我无法访问它
Ext.define('MyApp.view.Main', {
extend: 'Ext.Panel',
alias: 'widget.mainpage',
config: {
width: 710,
margin: '10px auto 0',
itemId: 'democontainer',
layout: {
type: 'hbox'
},
items: [
{
xtype:'container',
cls:'wholeMenuWrap',
margin: '65px 0 0 0',
width: 175,
items:[
....and
{
xtype: 'homepage',
cls:'homepage-wrap',
itemId: 'demopanel',
layout: {
type: 'fit'
}
},
{
xtype:'container',
layout: 'vbox',
margin: '65px 0 0 0',
width: 185,
items:[
{
xtype: 'titlebar',
cls:'roundedToolbar',
config: {
main:this,
profile: Ext.os.deviceType.toLowerCase(),
refs:{
myContainer: 'mainpage',
},
control: {
'mainpage': {
activate: 'onActivate',
itemtap: 'onItemTap',
},
'mainpage textfield[itemId=searchBox]' : {
//clear the input text box
clearicontap : 'onClearSearch',
//on every key stroke
keyup: 'onSearchKeyUp'
},
onSearchKeyUp: function(searchField) {
var container = this.up('#democontainer');
var panel = container.down('#demopanel');
panel.removeInnerAt(0);
var submitWordBySearch = { xtype: 'searchplusfav' };
panel.insert(0, submitWordBySearch);
我得到这个错误:
Uncaught TypeError: Object [object global] has no method 'up'
任何人都请帮帮我
我添加了新代码:
Uncaught TypeError: Object [object global] has no method 'demoContainer2'
onKeySubmitTap: function(dataview, index, target, record, e, options)
{
var container = dataview.up('#democontainer');
var panel = container.down('#demopanel');
panel.removeInnerAt(0);
var submitWordBySearch = { xtype: 'categorywordsdisplay' };
panel.insert(0, submitWordBySearch);
}
获取错误:
Uncaught TypeError: Object [object global] has no method 'demoContainer2'
onKeySubmitTap: function(dataview, index, target, record, e, options)
{
var container = dataview.up('#democontainer');
var panel = container.down('#demopanel');
panel.removeInnerAt(0);
var submitWordBySearch = { xtype: 'categorywordsdisplay' };
panel.insert(0, submitWordBySearch);
}
工作代码:
Uncaught TypeError: Object [object global] has no method 'demoContainer2'
onKeySubmitTap: function(dataview, index, target, record, e, options)
{
var container = dataview.up('#democontainer');
var panel = container.down('#demopanel');
panel.removeInnerAt(0);
var submitWordBySearch = { xtype: 'categorywordsdisplay' };
panel.insert(0, submitWordBySearch);
}
在控制器中使用this.up()
实际上不会做任何事情。要获取对democontainer的引用,您首先应该意识到在类的config
中声明itemId
是没有用的;这实际上应该在声明类实例时完成。您基本上已经有了对#democontainer
的引用,因为这两个与您当前的类配置等效:
refs: {
demoContainer1: 'mainpage',
demoContainer2: '#democontainer' //same as demoContainer1
}
因此,使用您已经拥有的ref
,为了稍后在控制器中获得该引用,您只需使用this.getMyContainer()
:
我为我自己的问题添加了这个,这正是我的工作:
var container = Ext.Viewport.up('#democontainer');
var panel = Ext.Viewport.down('#demopanel');
panel.removeInnerAt(0);
var submitWordBySearch = { xtype: 'submitnewdefinitionholder' };
panel.insert(0, submitWordBySearch);
感谢您的回复,但我无法设置为面板。removeInnerAt(0);var submitWordBySearch={xtype:'searchplusfav'};面板。插入(0,按搜索提交);。。。请注意我编辑的问题。好的,谢谢,但我仍然收到这些类型的错误。未捕获类型错误:对象[Object global]没有方法'getDemoContainer2'AutoSearchFinal.js?_dc=1376568704064:235(匿名函数)AutoSearchFinal.js?_dc=1376568704064:235 show.fn