Extjs 如何在xtype中添加值以进行比较

Extjs 如何在xtype中添加值以进行比较,extjs,Extjs,请帮忙。 我正试图根据从数据库中获取的值显示xtype。 我创建了存储来从服务器端获取数据,它只接收布尔值true或false,其他什么都不接收 var hidden= Ext.create('Ext.data.Store', { fields: ['hidden'], autoLoad: true, proxy:

请帮忙。 我正试图根据从数据库中获取的值显示xtype。 我创建了存储来从服务器端获取数据,它只接收布尔值true或false,其他什么都不接收

var hidden= Ext.create('Ext.data.Store',
                    {
                        fields: ['hidden'],
                        autoLoad: true,
                        proxy:
                        {
                            type: 'ajax',
                            url: 'hidden/compare',
                            reader:
                            {
                                type: 'json',
                                root: 'data'
                            }
                        }
                    });
这是我想要的示例,但我不知道要添加什么,而不是从商店添加值

text: 'Now you see me, now you don't',
xtype: value_from_the_store == false ?  'hidden' : 'textfield',

如果查看Ext.data.Store的文档,您将看到几个允许您访问存储中数据的函数

我不确定您要访问哪个记录,或者是否只有一个记录,但您可以使用getAt通过索引或使用getById通过ID来获取记录。您可以使用first获取第一条记录。还有几个find函数,允许您搜索特定记录

既然你说只有一张唱片,你可以先用。您还需要使用get'hidden'获取记录中的特定字段


来,你可以试试这把小提琴-

我已经在Ext5中创建了这个小提琴,但是你仍然可以在Ext4中使用它。希望这有帮助

这是分机4.2的同一把小提琴-

在小提琴中,你甚至可以不调用函数

xtype: store.getAt([0]).get('hidden')? 'hidden' : 'textfield'
从存储中获取值的另一种方法是——

store.findRecord('hidden', 'true').get('hidden') 
store.findRecord'fieldName','字段值应以其开头的字符串,或针对字段进行测试的RegExp'


下面是您的API文档

您使用的是哪个版本的ext?只有一条记录,这是错误的。您是否验证了您的存储实际上有任何数据?您只需修改从存储获取数据的方式。尝试时,我得到的结果是:store.getData不是函数是的,这是因为getData在ext 4中不存在。我在5中提到过,我已经用一个新的提琴为ext 4.2更新了我的答案。出于未知原因,它返回以下内容:无法读取此行getTypestore.getAt[0]中未定义的属性“get”。get“hidden”
store.findRecord('hidden', 'true').get('hidden')