如何在extjs中获得项目
问题描述:
在我的项目中,我在notifications
的“视图”中为以下代码创建了widget alias
。现在,如何访问“Controller”中的每个项目?如何在extjs中获得项目
extend: 'Ext.panel.Panel',
alias: 'widget.notifications',
layout: 'fit',
items:[{
xtype: 'container',
layout: {type: 'vbox', align: 'stretch'},
items: {
xtype: 'container',
flex:1,
layout: {type: 'vbox', align: 'stretch'},
items:[{
xtype: 'container',
flex: 1,
items: [{
xtype: 'container',
height: 20,
html: "This week",
},
{
xtype: 'container',
flex: 1,
layout: {type: 'vbox', align: 'stretch'},
items: [{
xtype: 'container',
height:20,
html : 'show submit status here'
},
{
xtype: 'container',
flex: 1,
}]
}]
},
{
xtype: 'container',
flex: 1,
layout: {type: 'vbox', align: 'stretch'},
items: [{
xtype: 'container',
height: 20,
html: "This month"
},
{
xtype: 'container',
flex: 1,
layout: {type: 'vbox', align: 'stretch'},
items: [{
xtype: 'container',
html: 'submit status of month here',
height: 20
},
{
xtype: 'container',
flex: 1,
}]
}]
}]
}
}]
我想:
var notificationView = Ext.widget('NotificationView');
var childItem = notificationView.items.items[0].items.items[0].items.items[0].items.items[0];
这只是给了我头痛和许多错误。
var childItem = notificationView.ComponentQuery.query('container>container>container>container');
哪只获得了第一个孩子,而不是其他子项:
我也使用ComponentQuery这样的尝试。
答
您可以使用组件的任意属性在组件查询中标识它。例如,如果您将属性refId : 'myMonthlyStatus'
添加到最后一个容器,则可以从任何地方使用query('container [refId=myMonthlyStatus]')
找到它。
有没有像'refId'?因为我找不到它。 – 2013-03-19 07:00:19
甚至如果我在'notificationView'变量中改变了某些东西,我在我的视图中看不到任何更改。我甚至调用了'this.callParent()'。 – 2013-03-19 07:02:08
没有refId属性 - 我做了它,告诉你可以在ComponentQuery中使用任何你想要的属性。再次仔细阅读我的答案。 – dbrin 2013-03-19 17:43:53