2015-12-21 57 views
1

我注意到創建記錄時的結果在ExtJs 6中與舊版本相比是不同的。在ExtJs 6和之前的版本中創建記錄

我在控制檯上使用chrome運行以下代碼。我定義了以下模型。

Ext.define('mymodel',{ 
    extend :'Ext.data.Model', 
    fields : [ 
    {name:'firstname'} 
    ] 
}); 

然後我用這個模型創建一條記錄。

var rec = Ext.create(mymodel,{ 
    firstname: 'Peter', 
    lastname: 'Venkman' 
}); 

當我從這個記錄獲得的數據

rec.getData(); 

結果是

ExtJS的6

Object {firstname: "Peter", lastname: "Venkman", id: "mymodel-1"} 

ExtJS的4

Object {firstname: "Peter", id: undefined} 

在ExtJs的6

lastname 

雖然未在模型中定義正在建立。任何人都知道這是爲什麼?在文檔中找不到的東西發生了變化。

+0

只是澄清:自從ExtJS 5以來一直如此。 –

+1

是的,這是正確的 – dev

回答

1

這是覆蓋在What’s New in Ext JS 5

模型構造不再提取從數據字段對象 它被賦予,而是採用了它,並升級其基礎上 轉換器,並從定義字段的默認值。這意味着 您不再需要定義您想保留在 記錄中的每個字段。只要服務器以所需的格式發送數據,這些屬性將保留在記錄的數據對象上。這些 未聲明的字段被假定爲永久性的,因此更改將被追蹤幷包含在 之內以保存回服務器。

+0

基本上,問題不在於id。我沒有提到這一點。我想知道爲什麼在extjs6'lastname'正在創建,因爲它沒有在模型中定義 – dev

+0

@dev:我已經更新了我的答案.. –

相關問題