朋友你好我被困在了sencha touch 2.0中的一个点。我正在我的应用程序中创建一个屏幕,我需要获取复选框值(选中或取消选中)。我在sencha文档中引用this示例,但我无法理解如何使用Ext.ComponentQuery.query('这里有什么?')[0]。
修改
这是我的代码: -
Ext.define('MyApp.view.groupList',{
extend : 'Ext.navigation.View',
requires: ['Ext.field.Search', 'Ext.TitleBar'],
alias: "widget.groupList",
itemId: "gList",
initialize: function(){
this.callParent(arguments),
var checkBox = {
xtype: 'checkboxfield',
name : 'all',
// label: 'All',
value: 'all',
lableWidth: "0",
width: 1,
padding: '0 0 15 30',
checked: false
};
var sendBtn = {
itemId: 'sendBtn',
xtype: 'button',
text: 'Send',
ui: 'action',
handler: function() {
var check = Ext.ComponentQuery.query('navigationview')[0],
values = check.getValues();
Ext.Msg.alert(null,
"Selected All: " + ((values.all) ? "yes" : "no")
);
}
};
var topToolbar = {
xtype : "toolbar",
title : "Groups",
docked : "top",
items: [
checkBox,
{xtype: 'spacer'},
// searchBtn,
sendBtn
],
};
var list = {
xtype: "grlist",
store: Ext.getStore("grStore")
};
this.add([list,topToolbar]);
},
config: {
navigationBar: {
hidden: true,
},
}
});
我收到以下错误: -
TypeError: Result of expression 'check.getValues' [undefined] is not a function. at
file:///android_asset/www/app/view/group_list.js
因此,请让我了解Ext.ComponentQuery如何使用一些示例代码或教程。
提前完成。
答案 0 :(得分:6)
Ext.ComponentQuery
接受3种类型的参数:
xtype
,例如:Ext.ComponentQuery.query('navigationview')
id
,例如:Ext.ComponentQuery.query('my-nav-view-id')
attributes
,例如:Ext.ComponentQuery.query('navigationview[name="my nav view"]')
无论param属于哪种类型,Ext.ComponentQuery.query()
始终返回匹配组件的数组。在示例中,他们添加[0]
,因为它确保结果数组只包含1个项目。
在您的代码中,您似乎尝试查询xtype navigationview
的组件,此类组件没有getValues
方法(仅适用于Ext.form.Panel
并派生类)。因此,如果要检索值,则必须使用如下查询:
Ext.ComponentQuery.query('checkboxfield')[0]
希望它有所帮助。
答案 1 :(得分:0)
Ext.ComponentQuery文档是here ...
不应该在此示例中使用它。 由于不使用全局搜索方法,此代码将更加安静和可笑。
var sendBtn = {
itemId: 'sendBtn',
xtype: 'button',
text: 'Send',
ui: 'action',
scope: this,
handler: function() {
var check = this.down('#checkboxfield'),
values = check.getValue();
Ext.Msg.alert(null,
"Selected All: " + ((values.all) ? "yes" : "no")
);
}
};
此外,我已经更正了代码示例,方法是getValue()
注意:强> 我知道这个答案是如此过时而且它并不相关,但是接受的方法是鼓励使用Ext.ComponentQuery而不需要它,这只是糟糕的代码并且逻辑代码假定为ui将保持相同的设置格式。