2012-11-15 68 views
0

我正在研究一個Sencha應用程序,並無法訪問我定義的基本模型的字段。我使用Ext.define來定義模型,並使用Ext.create來創建它的一個實例。根據文檔,我應該可以通過在該字段上調用get.(<fieldname>)來訪問其字段,但它不起作用,並且返回null。這裏是基本代碼,以及jsfiddle如何獲取外業屬性

Ext.define('App.model.Patient', { 
    extend: 'Ext.data.Model', 
    config: { 
     fields: ['admissionGuid', 
      'firstName', 'middleInitial', 'lastName', 'visitType', 
      { name: "visitDate", type: 'date'}] 
    } 
});​ 


var newVisit = Ext.create('App.model.Patient', { 
     admissionGuid: 1234, 
     firstName: "FirstName", 
     middleName: "MiddleName", 
     lastName: "LastName", 
     visitType: "Revisit", 
     visitDate: new Date() 
}); 

alert(newVisit.get('admissionGuid')); // returns null 
+0

你的問題混亂。標題說Ext JS,它被標記爲Ext JS/Sencha Touch 2,並被寫爲Sencha Touch 2。小提琴鏈接Ext JS。這是什麼? –

+0

我正在製作一個Sencha Touch 2應用程序,但我認爲類系統與ExtJS共享,所以與ExtJS鏈接應該沒問題,以解決此問題。 – Nate

回答

1

你的代碼是正確使用煎茶觸摸2.我測試過它,並按預期工作。使用ST撥弄:http://www.senchafiddle.com/#6Q9ac

ExtJS和Sencha Touch共享類似的類系統,但它們並不完全相同。

1

,你傳遞的數據都存儲在原始參數,以便嘗試這種

alert(newVisit.raw.admissionGuid); 

這應該工作

+0

您不應該需要這樣做,除非由於某種原因,您尚未在模型中定義指定的字段。 – rdougan

0

只是一種替代方式,

,我們還可以通過訪問內部模型的數據:

*instanceOfModel*.data.*fieldName* 

因此,例如與給定的代碼將是:

newVisit.data.admissionGuid