Sencha Touch 1 的嵌套列表无限循环
Posted
技术标签:
【中文标题】Sencha Touch 1 的嵌套列表无限循环【英文标题】:Nested List infinite loop with Sencha Touch 1 【发布时间】:2012-03-04 15:21:21 【问题描述】:我是 Sencha Touch 和网络编程的新手。我正在尝试显示一个嵌套列表,并且一遍又一遍地循环获取第一级项目。
我查看了文档和厨房水槽示例,但无法正确理解。我将非常感谢您的提示!
这是我的代码:
Ext.regModel('Site',
fields: [
name: "sitename",
type: "string"
,
name: "last_connection",
type: 'auto'
]
);
Ext.setup(
icon: 'icon.png',
tabletStartupScreen: 'tablet_startup.png',
phoneStartupScreen: 'phone_startup.png',
glossOnIcon: false,
onReady: function()
var store = new Ext.data.TreeStore(
model: 'Site',
proxy:
type: 'ajax',
url: 'network.json',
reader:
type: 'json',
root: 'items'
);
var nestedList = new Ext.NestedList(
fullscreen: true,
title: 'Netzwerk',
displayField: 'sitename',
plugins: [new Ext.LeafSelectedPlugin()],
// add a / for folder nodes in title/back button
getTitleTextTpl: function()
return '' + this.displayField + '<tpl if="leaf !== true">/</tpl>';
,
// add a / for folder nodes in the list
getItemTextTpl: function()
return '' + this.displayField + '<tpl if="leaf !== true">/</tpl>';
,
store: store
);
);
以及json文件的结构(仅以一个节点为例):
"items": [
"id": "11",
"sitename": "Site A",
"items": [
"id": "11",
"sitename": "Endpoint 1",
"last_connection": "2012-03-02T10:03:22+0100",
"ping_time": 63,
"leaf": true
,
"id": "12",
"sitename": "Endpoint 2",
"last_connection": "2012-03-02T10:03:22+0100",
"ping_time": 57,
"leaf": true
],
"last_connection": "2012-03-02T10:03:22+0100",
"ping_time": 57
]
谢谢!
【问题讨论】:
【参考方案1】:我知道这篇文章有点老了,但如果它已经得到了回答,它会为我节省 2 个“长”小时的生命,所以它是这样的:
我发现我在TreeStore
中缺少defaultRootProperty
。根据您的 JSON,您需要将此属性设置为 items
。
这是您的TreeStore
的外观:
var store = new Ext.data.TreeStore(
model: 'Site',
defaultRootProperty: 'items',
proxy:
type: 'ajax',
url: 'network.json',
reader:
type: 'json',
root: 'items'
);
【讨论】:
以上是关于Sencha Touch 1 的嵌套列表无限循环的主要内容,如果未能解决你的问题,请参考以下文章
Sencha Touch:嵌套列表滚动到顶部,我该如何禁用它?
Sencha Touch 2:给嵌套列表叶节点一个不同的 itemTpl
sencha touch 2.2.1 检查控制器中的商店是不是为空?