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

考えられる原因は2つあります。

idまず、フィールドの名前を使用しているためです。Ext.data.ModelデフォルトでidProperty設定されid、他のフィールドとは異なる方法で処理されるフィールドの名前を定義します。このgetId方法は。と同等ですget(idProperty)

次に、のタイプがであるため、idこのint場合、フィールドのデフォルト値は0です(フィールド構成を使用しない場合useNull)。

id個人的には、ほとんどすべてのものと衝突する傾向があるため、モデルプロパティの使用は避けようとしています。似たようなものを使って問題が発生したことはありませんrecordId

于 2012-10-12T14:46:25.137 に答える