メインビューで含むと宣言しました。それでは、コントローラーでアクセスする方法。ここにdemocontainerとdemopanelがあります。では、アクセス方法。
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'
誰でも私を助けてください。
新しいコードを追加しました:
refs:{
myContainer: 'mainpage',
demoContainer2: '#democontainer', //same as demoContainer1
demoContainer3:'#demopanel'
},
...-------------
onSearchKeyUp: function(searchField) {
var container = this.getDemoContainer2();
var panel = container.getDemoContainer3();
panel.removeInnerAt(0);
var submitWordBySearch = { xtype: 'searchplusfav' };
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);
}