如何在extjs中获取项目

时间:2013-03-19 06:03:04

标签: extjs extjs4 extjs4.1 extjs-mvc

在我的项目中,我在“查看”中为widget alias创建了notifications以下代码。现在,如何访问“Controller”中的每个项目?

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];

这让我很头疼并且有很多错误。

我也尝试过像这样使用ComponentQuery:

var childItem = notificationView.ComponentQuery.query('container>container>container>container');

只有第一个孩子,而不是其他孩子。

1 个答案:

答案 0 :(得分:2)

您可以使用组件的任意属性在组件查询中识别它。例如,如果您将属性refId : 'myMonthlyStatus'添加到上一个容器,则可以从任何位置使用query('container [refId=myMonthlyStatus]')找到它。