2014-09-02 24 views
0

我想在ExtJS中使用一個非常簡單的組合框,但我很驚訝地發現,好像我必須通過使用商店來複雜化事物。試圖獲得一個基本的組合工作在ExtJS

我有數據的一個數組:

var states = [ 
    {"name":"Alabama"}, 
    {"name":"Alaska"} 
] 

創建我的模式「狀態」鏈接到「名稱」字段,然後創建我的商店鏈接到模型,數據陣列。

Ext.regModel('State', { 
    fields: [ 
     {type: 'string', name: 'name'} 
    ] 
}); 
var store1 = Ext.create('Ext.data.Store', { 
    model: 'State', 
    data: states 
}); 

現在我創造我的組合,在我的面板領域:

var f = Ext.create('Ext.form.Panel', { 
    items: [ 
     { 
      fieldLabel: 'hi there', 
      xtype: 'combobox', 
      name: 'XXXX', 
      store:store1, 
      maxLength: 64, 
      allowBlank: false 
     } 
    ] 
}) 

沒有告訴我,我做錯什麼,但我得到一個「遺漏的類型錯誤:無法讀取屬性」 indexOf'未定義'每當我嘗試打開組合。

我的小提琴是在這裏:

http://jsfiddle.net/sr61tpmd/1/

另一邊,我的問題是,什麼是我可以提出在ExtJS的組合框最簡單的方法?

+1

設置'queryMode:'local'' – 2014-09-02 13:32:20

+0

我得到Uncaught Ext.data.proxy.Server.buildUrl():你正在使用ServerProxy,但沒有提供一個URL。 – 2014-09-02 13:44:34

回答

1

只要您只需要一個與顯示的值相同的組合框,就完全可以將商店定義爲數組。

xtype:'combo', 
store:['Alabama','Arkansas',...] 

真正的extjs商店是必要的,當你顯示的文本不同於價值。你可以在ext文檔中看到一個有效的例子(實際上也使用美國的狀態):http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.form.field.ComboBox

+0

我知道有一些簡單的選擇;) – 2014-09-02 13:48:49

相關問題