0

如果我定义这样的实体:

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。这是为什么?

4

1 回答 1

3

有两个可能的原因。

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

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

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

于 2012-10-12T14:46:25.137 回答