Extjs4 ExtJS 4实例化模型的id设置为0

Extjs4 ExtJS 4实例化模型的id设置为0,extjs4,Extjs4,如果我这样定义一个实体: 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());

如果我这样定义一个实体:

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
。我希望它是
未定义的
。为什么会这样?

有两种可能的原因

首先,因为您正在为字段使用名称
id
Ext.data.Model
具有默认为
id
idProperty
配置,定义了要区别于其他字段处理的字段的名称。
getId
方法相当于
get(idProperty)

其次,因为
id
的类型是
int
,在这种情况下,字段的默认值是0(除非使用
useNull
字段配置)


我个人尽量避免对模型属性使用
id
,因为它会与几乎所有内容发生冲突。我从来没有在使用类似于
recordId
或类似的东西时遇到过问题。

可能有两个原因

首先,因为您正在为字段使用名称
id
Ext.data.Model
具有默认为
id
idProperty
配置,定义了要区别于其他字段处理的字段的名称。
getId
方法相当于
get(idProperty)

其次,因为
id
的类型是
int
,在这种情况下,字段的默认值是0(除非使用
useNull
字段配置)

我个人尽量避免对模型属性使用
id
,因为它会与几乎所有内容发生冲突。我在使用类似于
recordId
或类似的东西时从来没有遇到过问题