如果我定义这样的实体:
Ext.define('MyApp.model.Entity', {
extend : 'Ext.data.Model',
fields : [ {
name : 'id',
type : 'int'
} ]
});
然后实例化它并输出其id:
var entity = Ext.create('MyApp.model.Entity');
console.log(entity.getId());
我输出0
。我希望它是undefined
。那是为什么?
答案 0 :(得分:3)
有两种可能的原因。
首先,因为您使用名称id
作为字段。 Ext.data.Model
的{{1}}配置默认为idProperty
,定义要与其他字段区别对待的字段名称。 id
方法相当于getId
。
其次,因为get(idProperty)
的类型是id
,在这种情况下,该字段的默认值为0(除非您使用int
字段配置)。
我个人试图避免将useNull
用于模型属性,因为它倾向于与几乎所有内容发生冲突。我从来没有遇到像id
或类似的事情那样的问题。