2013-08-05 46 views
0

我具有被配置爲顯示在當前範圍內的彙總一個rallycombobox後:刷新rallycombobox添加新的彙總

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

這個程序還具有一個AddNew部件,使用戶可以添加新的PortfolioItem /彙總 - 如果他們添加一個新的,那麼我想刷新這個組合框以將該彙總作爲選項。我無法找到在API文檔中刷新組合框的方法,因此我正在執行混亂的版本 - 這涉及頻繁地創建和銷燬組合框。

我試着做一:

setStoreConfig(...); 

但是,這似乎並沒有在所有的刷新數據。任何方式來完成這個沒有破壞和重新創建?

回答

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); 
    } 
});