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你点击以前列表的项目时使用并推送新列表。这是与 a 完全相同的概念,Ext.NestedList因此它不会使您的应用程序过载。

这是基于您的数据的示例

如果您有任何问题,请随时提问

希望这有帮助

于 2012-11-12T18:21:48.407 回答
0

我认为您的 defaultRootProperty 对于 treeStore 是错误的。

它应该是

defaultRootProperty: 'Jobs',

API 参考

于 2012-11-12T18:18:55.880 回答