在NestedList中禁用/隐藏工具栏

时间:2013-12-20 20:21:52

标签: extjs sencha-touch sencha-touch-2

我的星期五晚上用于解决意外问题)这是关于如何禁用NestedList组件中的原生工具栏(对于Sencha touch 2.3.1)。

默认情况下,使用工具栏创建NestedList。最后一个具有默认配置:

  

toolbar:{docked:'top',xtype:'titlebar',ui:'light',inline:true}

根据API docs.sencha.com/touch/2.3.1/#!/api/Ext.dataview.NestedList-cfg-toolbar工具栏配置看起来像

  

工具栏:Ext.Toolbar / Object / Boolean

所以我认为布尔表示显示(true)或不显示(false)

好吧,让我们做一些 magic 练习,这是我的例子:

var data = {
     text: 'Groceries',
     items: [{
         text: 'Drinks',
         items: [{
             text: 'Water',
             items: [{
                 text: 'Sparkling',
                 leaf: true
             }, {
                 text: 'Still',
                 leaf: true
             }]
         }, {
             text: 'Coffee',
             leaf: true
         },]
     }, ]
 };

 Ext.define('ListItem', {
     extend: 'Ext.data.Model',
     config: {
         fields: [{
             name: 'text',
             type: 'string'
         }]
     }
 });

 var store = Ext.create('Ext.data.TreeStore', {
     model: 'ListItem',
     defaultRootProperty: 'items',
     root: data
 });

 var nestedList = Ext.create('Ext.NestedList', {
     fullscreen: true,
     title: 'Groceries',
     displayField: 'text',
     store: store,
     //toolbar: false
 });

取消注释// toolbar: false会导致错误,例如

  

未捕获TypeError:对象#没有方法'insert'

等等。看起来像Sencha尝试在未存在的组件上执行'insert'方法(因为它被禁用,工具栏设置为false)

2 个答案:

答案 0 :(得分:1)

也许是一个迟到的回答者,但我偶然发现了你的问题,我设法解决方法而没有对源文件进行任何修改。

只需在嵌套列表'config。

中设置toolbar:{hidden:true}
config: {
    // other settings
    toolbar: {hidden: true}
}

请告诉我这是否适合您,或者您是否希望我制作一个小提琴!

答案 1 :(得分:0)

谷歌并没有给我带来有用的信息,所以我能够自己修复它。

问题隐藏在src/dataview/NestedList.js

无论如何,这里是原始文件的差异http://www.diffnow.com/?report=o43bd并已修复。线条~640和~870受到影响。

欢迎您的评论!

谢谢