我注意到,与旧版本相比,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 :(得分:1)
What’s New in Ext JS 5
中包含的内容:
Model构造函数不再从数据对象中提取字段 它是给定的,而是采用它并基于它升级它 转换器和您定义的字段中的默认值。这意味着 您不再需要定义要保留的每个字段 记录。只要服务器以所需格式发送数据, 这些属性将保留在记录的数据对象上。这些 假定未声明的字段是持久的,因此将进行更改 跟踪并包含在保存回服务器中。