0

xml から TreeStore を作成する際に問題が発生したため、助けが必要です (store は NestedList 用です)。ビューの Javascript コードは次のとおりです。

{
            xtype: 'nestedlist',
            title: 'Журнал',
            iconCls: 'bookmarks',
            displayField: 'title',
            store: {
                type: 'tree',
                model: 'App.model.magazineNumber',
                root: {
                    leaf: false
                },
                proxy: {
                    type: 'ajax',
                    url: 'http://localhost:57648/repo/dataMocks/contentListItems.xml',
                    reader: {
                        type: 'xml',
                        rootProperty: 'items',
                        record: 'magazineNumber'
                    }
                }
            }
}

モデル定義

Ext.define('App.model.magazineNumber', {
extend: 'Ext.data.Model',
config: {
    fields:
        [
            'title',
            'description',
            {
                name: 'leaf',
                defaultValue: false
            }]
//this doesn't help
//        , hasMany: [{
//            model: 'App.model.magazineNumber',
//            name: 'items'
//        }]
//        , belongsTo: 'App.model.magazineNumber'
    }
});

およびxmlファイル

<?xml version="1.0" encoding="utf-8" ?>
<items>
  <magazineNumber>
    <title>Первый номер</title>
    <description>Описание первого номера</description>
    <items>
      <magazineNumber>
        <title>Статья один</title>
        <description>Описание cтатьи один</description>
        <contentItemId>1</contentItemId>
      </magazineNumber>
      <magazineNumber>
        <title>Статья два</title>
        <description>Описание cтатьи два</description>
        <contentItemId>2</contentItemId>
      </magazineNumber>
      <magazineNumber>
        <title>Статья три</title>
        <description>Описание cтатьи три</description>
        <contentItemId>3</contentItemId>
      </magazineNumber>
    </items>
  </magazineNumber>
  <magazineNumber>
    <id>5</id>
    <title>Второй номер</title>
    <description>Описание второго номера</description>
    <items>
      <magazineNumber>
        <title>Статья один</title>
        <description>Описание cтатьи один</description>
        <contentItemId>4</contentItemId>
      </magazineNumber>
      <magazineNumber>
        <title>Статья два</title>
        <description>Описание cтатьи два</description>
        <contentItemId>5</contentItemId>
      </magazineNumber>
    </items>
  </magazineNumber>
</items>

Nestedlist はフラットな構造を示しています (一度にすべてのアイテム - 1 番目の最上位の magazineNumber、3 - 子、2 番目の最上位の magazineNumber、3 の childred )、ただし、最上位のアイテムをタップすると (xml ファイルデータに関して) ) 3 つのアイテムの子が表示されます。子をタップすると、ネストされたリストが「フラット」ビューに戻ります。

他の関連付け構成またはネストされたモデルで自己関連付けモデルを使用する必要がありますか?「アイテム」フィールドをモデルに追加するか、何らかの方法でストア\プロキシ構成を変更する必要がありますか?

いくつかのコード サンプルは大歓迎です。

ありがとう :)

4

1 に答える 1

0

これを試すことができますか

proxy: {
    type: 'ajax',
    url: 'http://localhost:57648/repo/dataMocks/contentListItems.xml',
    reader: {
       type: 'xml',
       record: 'magazineNumber'
    }
}

そして中にstore: { ..., autoLoad: true }

これが役立つことを願っています。:)チャオ。

于 2012-06-13T18:13:47.870 に答える