0

我有一个 rallycombobox 配置为在当前范围内显示汇总:

App.down('#associateWith').add({
    xtype          : 'rallycombobox',
    fieldLabel     : 'Dropdown',
    id             : 'association',
    allowNoEntry   : true,
    storeConfig    : {
        autoLoad       : true,
        model          : 'PortfolioItem/Rollup'
    }
});

这个应用程序还有一个 addnew 组件,使用户能够添加一个新的 PortfolioItem/Rollup - 如果他们添加一个新的,那么我想刷新这个组合框以将该汇总作为一个选项。我无法在 API 文档中找到刷新组合框的方法,所以我正在制作混乱的版本 - 这涉及非常频繁地创建和销毁组合框。

我试着做一个:

setStoreConfig(...);

但这似乎根本没有刷新数据。有什么方法可以在不破坏和重新创建的情况下做到这一点?

4

1 回答 1

4

最简单的方法是挂钩到 AddNew 的create事件。它会给你一个新创建的 Rollup 的记录,你可以从那里把它放在你的 ComboBox 的商店中

Ext.define('CustomApp', {
    extend: 'Rally.app.App',
    componentCls: 'app',

    launch: function() {
        this.combobox = this.add({
            xtype: 'rallycombobox',
            allowNoEntry: true,
            storeConfig: {
                autoLoad: true,
                model: 'PorfolioItem/Rollup'
            }
        });
        this.add({
            xtype: 'rallyaddnew',
            recordTypes: ['PortfolioItem/Rollup'],
            listeners: {
                create: this._onCreate,
                scope: this
            }
        });

    },

    _onCreate: function(addNew, record) {
        this.combobox.getStore().add(record);
    }
});
于 2013-08-05T18:52:58.670 回答