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
或类似的东西时从来没有遇到过问题