首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ExtJs6.2中基于Store构建checkboxgroup

如何在ExtJs6.2中基于Store构建checkboxgroup
EN

Stack Overflow用户
提问于 2016-10-01 18:07:50
回答 2查看 360关注 0票数 2

是否可以在形式上自动从ViewController运行一个方法?我需要创建基于这个控制器的数据的checkboxgroup。在ViewController中的这个方法中,我从JSON文件中获取数据,这里我正在更新一个视图。当我的视图中有一个侦听器按钮时,一切都是正常的,但是它应该自动运行,并且复选框‘is应该基于这个存储数据来构建。

代码语言:javascript
复制
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);
        }
    }

和ViewModel类:

代码语言:javascript
复制
Ext.define('Message.web.view.edit.EditViewModel', {
    extend: 'Ext.app.ViewModel',
    alias: 'viewmodel.edit',

    data:{
      title: ''
    },
   stores : {
       perosnellstore: {
           fields : ['name'],
           autoLoad: true,
           proxy: {
               type: 'ajax',
               url : 'resources/response.json',
               reader: {
                   type: 'json',
                   rootProperty: 'cols.columns',
                   keepRawData: true
               }
           }
       }
   }


});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-02 19:07:41

答案是商店里的侦听器。

代码语言:javascript
复制
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));
        });
      }
    }
  }
  ...
});
票数 1
EN

Stack Overflow用户

发布于 2016-10-02 06:57:02

在viewController中,你可以听商店的声音。医生:http://docs.sencha.com/extjs/6.2.0/classic/Ext.app.ViewController.html#cfg-listen

当加载远程数据时,存储触发一个事件。医生:http://docs.sencha.com/extjs/6.2.0/modern/Ext.data.Store.html#event-load

侦听存储的load事件并调用onClickLoadData。

代码:

代码语言:javascript
复制
Ext.define('AM.controller.Users', {
    extend: 'Ext.app.Controller',

    listen: {
        store: {
            '#storeId': {
                load: 'onClickLoadData'
            }
        }
    }
});
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39809897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档