2

私は正常に動作する TreeStore を持っていますが、すべてのノードにはネストされたデータがあるため、新しいモデルを作成してhasMany関連付けを使用しました。しかし、ストアはもう何もロードしません。イベントのレコードを調べるとload、それらは空ですが、ブラウザーは Ajax リクエストが以前と同じようにすべてを配信したことを示しています。

サーバーからのノード データは次のようになります。

{
  "パス": "KEY_518693",
  "名前": "KEY_518693",
  "データ": [
    {
      "ブランチ": "KEY_518693",
      "primnav": "ETC",
      "X": 29261,
      "Y": 96492
    }、
    ...
  ]、
  "子供": [ ... ]、
  ...
}

これらは私のモデル定義です:

ツリーノード:
{
  拡張: 'Ext.data.Model',
  必要: [
    'データレコード',
    「Ext.data.association.HasMany」
  ]、
  田畑 : [
    { 名前: 'ID' , タイプ: '文字列', マッピング: 'パス' },
    { 名前: 'テキスト', タイプ: '文字列', マッピング: '名前' },
    ...
  ]、
  多くを持っています : {
    モデル: 'データレコード',
    名前:「データ」
  }
データレコード:
{
  拡張: 'Ext.data.Model',
  田畑: [
    { 名前: 'ブランチ' , タイプ: '文字列'},
    { 名前: 'primnav', タイプ: '文字列' },
    { 名前: 'X' , タイプ: 'int' },
    { 名前: 'Y' , タイプ: 'int' }
  ]
}

関連付けを削除すると、ツリーは問題なく読み込まれます。フィールドに追加dataすると、ツリーに解析されますが、モデル インスタンスとしてではなく、「生の」オブジェクトとして解析されます。

4

2 に答える 2

2

DataRecord には treenode_id というフィールドがないことに注意してください。そのため、hasMany の関連付けは完了していません。詳細については、ドキュメントを参照してください。

于 2012-07-09T14:01:54.257 に答える
0

私のアプローチには2つの問題がありました。

  1. 関連付けの名前を「data」にしないでください。そうしないと、レコードがまったく読み込まれません。
  2. 関連付けの primaryKey を正しく設定する必要があります。私の場合'branch'は正しかったです
于 2012-07-09T13:56:37.480 に答える