2015-12-21 53 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:我已经更新了我的答案.. –

相关问题