Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Extjs4 为JSON对象创建复选框_Extjs4 - Fatal编程技术网

Extjs4 为JSON对象创建复选框

Extjs4 为JSON对象创建复选框,extjs4,Extjs4,我正在使用extjs4,我需要根据我的JSON对象添加复选框组 JSON ExtJs Ext.define“providerList”{ 扩展:“Ext.data.Model”, 字段:['id','name'] }; var provider = Ext.create('Ext.data.Store', { model: 'providerList', autoLoad: true,

我正在使用extjs4,我需要根据我的JSON对象添加复选框组

JSON

ExtJs Ext.define“providerList”{ 扩展:“Ext.data.Model”, 字段:['id','name'] };

            var provider = Ext.create('Ext.data.Store', {
                model: 'providerList',
                autoLoad: true,
                proxy: {
                    type: 'ajax',
                    url : url+'/lochweb/loch/clinicalProvider/getAll',
                    reader: {
                        type: 'json',
                        root: 'Provider'
                    }
                }
            });
面板

表单中没有复选框。如何从JSON存储区填充复选框在将其用作复选框的子项之前,可以定义items数组。items数组的每个元素都是基于存储的每个记录创建的

var items = [];
provider.each(function(record) { items.push({boxLabel: 'up-to-you', name: 'up-to-you'}) }, );
var checkboxes = new Ext.form.CheckboxGroup({  
        fieldLabel:'Providers',  
        columns:2,  
        items:items
         });
在这里,您可以确定每个复选框的boxLabel和名称。记录的属性可以用作前缀、后缀…

一些提示:

在面板项的定义中,删除复选框周围的{},如下所示:

                items: [ checkboxes ]
    panel.add(new Ext.form.CheckboxGroup({
        columns: 1,
        vertical: true,
        items: checkItems
    }));
    panel.doLayout();
其次,确保在填充复选框时商店可用

我在我的应用程序中也有类似的情况,在面板渲染后,商店可用。面板中动态填充以下复选框列表:

                items: [ checkboxes ]
    panel.add(new Ext.form.CheckboxGroup({
        columns: 1,
        vertical: true,
        items: checkItems
    }));
    panel.doLayout();
编辑:另一个提示:

从此代码中删除qutoes:

{                   
    boxLabel: 'record.id', 
    name: 'record.name'
}

或者,您将得到所有标签“record.id”

您好,谢谢您的评论,我按照您的建议做了,但没有成功。代码如下,var items=[];provider.eachfunctionrecord{items.push{boxLabel:'record.data.id',name:'record.data.name'};在pusing box label和name之后,items数组仍然为空。因此表单中没有复选框。我没有要查询的url,因此我尝试向存储添加一条记录,但效果良好。你能再检查一下Ajax商店吗?创建后是否有数据?是的,数据存储区中填充了JSON对象,但复选框的创建并不奇怪。如果存储区有数据,它就会工作。在我看来,也许您将存储配置为使用Ajax查询数据,但实际上它并没有成功地获取数据?顺便说一下,返回的JSON的格式应该是{Provider:[{id:3,name:Beta House,npi:0,taxId:0,address:{state:{id:1,stateName:Alabama,code:AL},zipcode:0,country:USA,email:beta@gmail.com},type:CP,LabProvider:[],ListOfProvider:[]}}我已经用上面提到的更改运行了代码,它适用于静态存储。您确定在调用“each”时已填充存储区吗?在调用“checkboxconfigs.push”时,请尝试使用console.log查找每条记录,并检查记录是否正常。