如何在xtype中添加值来比较它

时间:2015-04-20 12:52:37

标签: extjs

请帮忙。 我试图显示一个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'
                            }
                        }
                    });

以下是我想要的示例,但我不知道要添加什么来代替value_from_the_store

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

2 个答案:

答案 0 :(得分:0)

如果查看Ext.data.Store的文档,您会看到几个允许您访问商店中数据的函数。

Ext.data.Store

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

由于您说只有一条记录,您可以使用first。您还需要使用get('hidden')获取记录中的特定字段。

xtype: hidden.first().get('hidden') ? 'hidden' : 'textfield',

答案 1 :(得分:0)

在这里,你可以试试这个小提琴 - https://fiddle.sencha.com/#fiddle/lho

我在Ext 5中创造了这个小提琴,但你仍然可以让它在4中工作。希望这会有所帮助。

这是Ext 4.2的同一个小提琴 - https://fiddle.sencha.com/#fiddle/lji

在小提琴中,你甚至可以这样做 - 而不是调用这个函数 -

xtype: store.getAt([0]).get('hidden')? 'hidden' : 'textfield'

从商店获取价值的另一种方法是 -

store.findRecord('hidden', 'true').get('hidden') 

store.findRecord(' fieldName','字段值应以字符串开头的字符串,或者用于测试字段的RegExp。')

这是您的link到API文档