如何在菜单项中添加复选框,同时我的菜单项是动态加载的

时间:2014-09-16 10:16:18

标签: extjs

我做了类似的事情..

    var mymenu = Ext.create('Ext.menu.Menu');
    for (var i = 0; i < store.getCount(); ++i){
    var record = store.getAt(i);

    var menuItem =  Ext.create('Ext.menu.Item' ,{
        xtype: 'menucheckitem',               
        checked : false,
        text : record.data.rollName,
        value : record.data.rollId          

    });       

    mymenu.add(menuItem);
}

但我的菜单中没有复选框。只有显示字段可见。

1 个答案:

答案 0 :(得分:3)

Ext可以理解两种类型的xtype属性,它们彼此紧密相连。

items:[{
    xtype:'menucheckitem',
}]

会为您创建一个xtype menucheckitem的项目。仅当存在分配了xtype menucheckitem的类型时才有效。

Ext.define('Ext.menu.Item',{
    xtype:'menucheckitem'

会将类型Ext.menu.Item分配定义为xtype menucheckitem的类型,以便第一个示例有效。

你正在做什么?将两者混合成汤:

var menuItem =  Ext.create('Ext.menu.Item' ,{
    xtype: 'menucheckitem',  

这将创建一个Ext.menu.Item类型的项目,并将对象的xtype属性设置为menucheckitem(这不会产生任何影响,因为您没有定义类型,但创建单个实例)

您想要的是以下内容:

var menuItem =  Ext.create('Ext.menu.CheckItem' ,{

没有xtype行!