2016-11-08 11 views
0

ウィジェット列のために、4.1.2から5.1.1にアップグレードする必要がありました。私は働かなくてはならない連合を得るのに困っている。ExtjsでレガシーHas One関連とのやりとり5.1.1

私はこのようになりますモデル持っている:

Ext.define('PP.model.LM.FOOModel', { 
    extend: 'Ext.data.Model', 

    requires: [ 
     'Ext.data.field.Field' 
    ], 

    fields: [ 
     { 
      name: 'ID' 
     }, 
     //Boatload of simple fields 
    ], 

    hasOne: { 
     model: 'PP.model.LM.FOO1Model', 
     name: 'FOO1', 
     associationKey: 'FOO1' 
    } 
}); 

私がモデルと対話し、そこにはゲッターの\ setterメソッドではありません、とFOO1Modelのデータにアクセス可能なオブジェクトとしてのみ存在しているがby

record.get('FOO1'); 

誰かが間違っていると指摘してもらえますか?

私は新しいアプローチでそれをやってみました - 希望のモデルへの参照を持つフィールドを作成しました。私がsetFoo1を呼び出した後、getを実行するとうまく動作します。しかし。

私がAjaxリクエストを作成し、Ext.data.reader.Jsonを使用して受信したJSONを読み取ると、オブジェクトの特定のプロパティが実際に関連付けられているモデルであることがわかりません。 Foo1のデータはFoo1プロパティのオブジェクトとしてモデルに表示されます。 reqestは、多数のFooModelを持つモデルの配列を返します。

JSONは次のようになります。詳細は

fields: [{ 
    name: 'addressId', 
    reference: 'Address', 
    unique: true 
}] 

チェックModel API:

{ 
    "root": [{ 
     "ID": 4241, 
     "Foos": [{ 
      ID: 2237, 
      "Foo1": { 
       "ID": 1216 
      } 
     }] 
    }], 
    "success": true 
} 

答えて

0

hasOneのは、それが次のように行われるのExtJS 5.1に存在しないようです。

+0

私はポストを更新しました。それに対する提案はありますか?前もって感謝します。 –

0

Ext.data.reader.Jsonをデバッグして理解しなければなりませんでした。キーは参照設定でassociationKeyを渡していました。指定されていない限り、読者はJSONの '_foo1'フィールドの下に関連付けのデータがあると想定します。

sencha docsにはどこに記載されていますか?私はそうは思わない。私はそれを推測しないと馬鹿に感じるはずですか?将来的に問題が発生することがあります私のような不幸な貧困層のSODため

サンプル、:

{ 
    name: 'Foo1', 
    reference: {  
     type: 'FOO1Model', 
     association: 'Foo1', 
     associationKey: 'Foo1' 
    }, 
    unique: true 
} 
関連する問題