3

Sencha Touch 2.1では、次のネストされたリストが定義されています。

xtype: 'NestedList',
docked: 'top',
ui: 'light',
store: treeStore,
detailCard: true,
detailContainer: // Reference to a Another Panel

ネストされたリストを表示することはできますが、JSONを介してアイテムを追加すると問題が発生します。これが私のJSONのサンプルです:

[
    {
       "BranchID" : 4,
       "BranchName" : "Branch Name",
       "Jobs" : [
          {
             "JobOrderID" : 75,
             "JobTitle" : "Job Title",
             "leaf" : true
          }
       ]
    }
]

そして、これが私のツリーストアとリストアイテムです:

// Define a List Item:
Ext.define('Branch', {
    extend: 'Ext.data.Model',
    config: {
        fields: [
            'BranchID',
            'BranchName'
        ]
    }
});

var treeStore = Ext.create('Ext.data.TreeStore', {
    model: 'Branch',
    defaultRootProperty: 'items',
    proxy: {
        type: 'ajax',
        url: 'data/region.php'
    }
});

data / region.phpが呼び出され、JSONが正しく返されていることがわかりますが、リストアイテムは表示されません。リストアイテムを表示するにはどうすればよいですか?

さらに、リーフノードに別のレイアウトを使用し、それらのリーフノードに別のパネルでリクエストをプルアップさせたいと思います。NestedListのDetailContainerセクションで参照できるように、パネルを識別するにはどうすればよいですか?

私が探しているもの:

  1. ブランチのリスト
  2. ブランチをタップして、すべてのジョブを一覧表示します
  3. ジョブをタップすると、詳細が他のパネルに表示されます。

ドキュメントを読みましたが、より複雑な実装では少しまばらに見えます。

4

2 に答える 2

4

私の煎茶体験から、私のアドバイスは決して使用しないことExt.NestedListです。もちろん、モデルが非常に単純な場合は非常に便利ですが、たとえば、モデルに関連付けが含まれている場合はカスタマイズが困難です。

だから私がする(そしてした)ことはExt.navigation.View、前のリストのアイテムをタップするときに、を使用して新しいリストをプッシュすることです。これはとまったく同じ概念であるExt.NestedListため、アプリケーションが過負荷になることはありません。

これがあなたのデータに基づく例です

ご不明な点がございましたらお気軽にお問い合わせください

これがお役に立てば幸いです

于 2012-11-12T18:21:48.407 に答える
0

あなたのdefaultRootPropertyはtreeStoreに対して間違っていると思います。

そのはず

defaultRootProperty: 'Jobs',

APIリファレンス

于 2012-11-12T18:18:55.880 に答える