1

代码如下所示。我正在尝试实现一个简单的聊天应用程序,这里的列表是 msgs 的内存存储。我发现this.getMsgList().add([myPanel]);列表之后仍然没有新项目。

我正在寻找获取 msgList 引用并向其中添加新引用的正确方法(希望是 imm)

Ext.define('Chat.controller.Main', {
extend: 'Ext.app.Controller',

views: ['MainView'],

config: {
    refs: {
        msgBox: '#msgBox',
        msgList: '#msgList'
    }
},

    init: function () {
    console.log('controller inited.')
    this.control({
        'button[action=submitMsg]':{
            tap: 'submitMsgToServer'
        }
    });
},

submitMsgToServer: function() {
    console.log('submitMsgToServer')
    var msg = this.getMsgBox()
    //Ext.Msg.alert(msg)
    //console.log(this.getMsgBox())
    var myPanel = Ext.create('Ext.Panel', {
        data: [ {string: msg} ]
    });

    this.getMsgList().add([myPanel]);
    console.log(this.getMsgList())
}

});

msgList 在这里定义:

Ext.define('Chat.view.MainView', {
extend: 'Ext.Panel',

config: {

    layout: {
        type: 'fit'
    },

    items: [
        {
            docked: 'top',
            xtype: 'titlebar',
            title: 'Chat'
        },
        {
            docked: 'bottom',
            xtype: 'toolbar',
            items: [
                { 
                    xtype: 'textfield', 
                    id: 'msgBox'
                },
                { 
                    xtype: 'button',
                    ui: 'confirm',
                    text: 'send',
                    action: 'submitMsg'
                }
            ]
        },
        {
            xtype: 'list',
            id: 'msgList',
            itemTpl: [
                '<div>List Item {string}</div>'
            ],
            data: [
                        { string: 'Item 1' },
                        { string: 'Item 2' }
            ]
        }
    ]


}

});

4

0 回答 0