Javascript 如何在ExtJs 6.2中基于Store构建checkboxgroup
是否可以在窗体中从ViewController自动运行方法?我需要创建checkboxgroup,它应该基于来自此控制器的数据。在ViewController中的这个方法中,我从JSON文件中获取数据,并在这里更新一个视图。当我在视图的listener中有一个按钮时,一切都正常,但它应该自动运行,并且复选框应该基于这个存储数据构建Javascript 如何在ExtJs 6.2中基于Store构建checkboxgroup,javascript,extjs,extjs6,Javascript,Extjs,Extjs6,是否可以在窗体中从ViewController自动运行方法?我需要创建checkboxgroup,它应该基于来自此控制器的数据。在ViewController中的这个方法中,我从JSON文件中获取数据,并在这里更新一个视图。当我在视图的listener中有一个按钮时,一切都正常,但它应该自动运行,并且复选框应该基于这个存储数据构建 onClickLoadData: function(){ console.log('onClickLoadData runned');
onClickLoadData: function(){
console.log('onClickLoadData runned');
var gridStore = this.getStore('perosnellstore');
var columnsArray = this.getStore('perosnellstore').getProxy().getReader().rawData.cols.columns;
console.log(columnsArray.length);
for( var i = 0; i < columnsArray.length; i++){
var checkbox = Ext.create('Ext.form.field.Checkbox', {
boxLabel: columnsArray[i].text,
x: 0,
y: i * 30
});
Ext.ComponentQuery.query("#checkBoxGroupModules")[0].add(checkbox);
}
}
在viewController中,您可以收听存储。文件: 存储在加载远程数据时触发事件。文件: 侦听存储的加载事件并调用onClickLoadData 代码:
答案是商店里的听众
var myStore = Ext.create('Ext.data.Store', {
...
listeners: {
'load': {
fn: function(store, records, success, operations) {
Ext.each(records, function(rec) {
console.log(Ext.encode(rec.raw));
});
}
}
}
...
});
你说的自动运行是什么意思?什么时候运行?多少次?一次,加载视图后。我在配置存储时遇到了问题,所以我用这种方式进行了配置,但我不确定这是否正确。我尝试使用initComponent方法,但这个方法是在应用程序启动后调用的。它不起作用:(这个方法不是以这种方式调用的。我不知道为什么。)
Ext.define('AM.controller.Users', {
extend: 'Ext.app.Controller',
listen: {
store: {
'#storeId': {
load: 'onClickLoadData'
}
}
}
});
var myStore = Ext.create('Ext.data.Store', {
...
listeners: {
'load': {
fn: function(store, records, success, operations) {
Ext.each(records, function(rec) {
console.log(Ext.encode(rec.raw));
});
}
}
}
...
});