2012-12-15 49 views
2

我試圖將selectfield綁定到sencha-touch中的商店。不過,我發現了以下錯誤:將selectfield自動綁定到sencha touch中的商店?

Uncaught TypeError: Cannot call method 'on' of undefined 

現場看起來就像這樣:

{ 
      xtype: 'selectfield', 
      label: 'Gender', 
      store: 'GenderStore', 
      displayField: 'ItemName', 
      valueField: 'Id' 
     }, 

和商店看起來像這樣:

​​

任何想法,爲什麼這不是加工?我想可能指定storeId會自動創建類似於使用xtype的商店?該字段是否不自動綁定到商店,還是我需要明確創建商店?

回答

1

確保您的視圖需要商店。也許這還不存在(它需要這樣它可以通過ID找到它):

requires: ['App.store.MyStore'] 
+0

嗨,我已經有這個在我看來,但我得到了同樣的錯誤:未捕獲TypeError:無法調用未定義的'on' – jaffa

+0

我認爲有什麼令人困惑的是,有網上的例子顯示商店id在引號中使用,也沒有引號。另外,是否使用了商店的標識以及商店別名中指定的內容?真的很困惑!... – jaffa

+0

你有沒有在你的控制器中指定商店?如果不是,框架將不知道它是什麼。 a)製造商店。 b)使用'stores'配置在控制器中指定它。 c)在你的視圖中使用'storeId'或只將className作爲一個字符串來指定它。 – rdougan

0

領域

 { 
     xtype: 'selectfield', 
     label: 'Gender', 
     store: GenderStore, 
     displayField: 'ItemName', 
     valueField: 'Id' 
    }, 

商店

var GenderStore = Ext.create('Ext.data.Store', { 
requires: [ 
    'MobileApp.model.Lookup', 
    'Ext.data.proxy.Rest' 
], 
autoLoad: true, 
model: 'MobileApp.model.Lookup', 
proxy: { 
    type: 'ajax',    
    url : '/api/lookup/genders', 
    reader: { 
     type: 'json', 
     rootProperty: 'd' 
    }, 
    root: 'd' 

} 
});