如何仅为列表中的项目子集提供披露按钮?
Posted
技术标签:
【中文标题】如何仅为列表中的项目子集提供披露按钮?【英文标题】:How to provide Disclosure button only for a subset of items in a List? 【发布时间】:2013-03-08 06:55:20 【问题描述】:我有一个要求,我只需要为 Sencha List 中的某些项目添加披露按钮。知道如何做到这一点吗?
将 onItemDisclosure 设置为 TRUE 会为列表中的所有项目启用此选项。但我只想根据特定条件为子集启用它。
非常感谢任何帮助。
【问题讨论】:
【参考方案1】:使用列表的disclosureProperty。来自文档:
检查每条记录的属性,以显示每条记录的披露。此属性必须为 false 以防止在项目上显示披露。
默认为:“披露”
因此,您只需在模型中添加名为 disclosure
的字段即可。
Ext.define('MyModel',
extend:'Ext.data.Model',
fields:[//other fields
name:'disclosure',
convert: function(value, record)
// logic to determine if disclosure should be displayed.
// return Boolean value
]
);
【讨论】:
您好,感谢您的快速帮助。我已将调试器放在 convert() 中,但当调试器被击中时,商店没有被加载。我无法用我的逻辑来检查列表行是否需要显示披露按钮。请帮忙。 您的评论不清楚。您是说在调试器中调用了 convert 方法,而不是在加载商店时?或者您是说在调试时永远不会触发转换方法?您如何设置商店和模型?您的商店是使用模型还是只是在商店中指定字段名称列表并让 Ext 自动为您生成模型? 我是 Sencha Touch 的新手。我的商店使用模型文件夹中的模型,当调试器被点击时模型没有加载。 传递给转换函数的value
不是status 的值,它是您的json blob 中的公开属性的值(未定义或null,因为您没有发送它并且正在创建现在从一无所有)。如果要获取状态字段的值,请从传入的记录中获取它。if (record.get('status') === "Live! Train Status") /* ... */
以上是关于如何仅为列表中的项目子集提供披露按钮?的主要内容,如果未能解决你的问题,请参考以下文章
从 UITableViewCell 中的详细信息披露按钮显示 UIPopoverController