首页 > 解决方案 > ExtJS - 当你定义一个类时,你如何从构造函数中访问值?

问题描述

在这里寻求帮助。正如您在下面看到的组合框 xtype 我正在尝试从 typeStore 填充它,但我不确定如何按照我的代码当前布局的方式访问构造函数中的值。这可能吗?

此外,字段名称“名称”和“电子邮件” - 我试图通过在配置上设置参数来填充它们(但同样,我似乎无法从我的代码的这一部分访问它)。通常我会认为它可以通过“this.config.params”之类的东西访问,但我真的不确定如何访问它,因为它超出了我认为的范围。

Ext.define('school',{
    extend: 'Ext.form.Panel',
    xtype: 'school',
    layout: 'anchor',
    defaultType: 'textfield',
    buttonAlign: 'center',
    items:
        [
            {
                fieldLabel: 'Name',
                name: 'name',
                //value: (?),
                allowBlank:false,
            },
            {
                fieldLabel: 'Email',
                name: 'email',
                //value: (?),
                allowBlank:false,
                vtype: 'email'
            },
            {
                xtype:'combobox',
                fieldLabel: 'Type',
                name: 'types',
                //store: typeStore,
                queryMode: 'local',
                displayField: 'type',
                valueField: 'typeid',
                multiSelect: true,
                emptyText: 'Select type',
                editable: false
            },
    constructor: function(config)
    {

        let me = this;
        me.callParent(arguments);
        me.initConfig(config);

        let typeStore= new Ext.data.JsonStore({
            proxy: {
                type: 'ajax',
                url: 'TypesManager',
                reader: {
                    type: 'json',
                    root: 'items',
                    idProperty: 'typeid'
                }
            },
            fields: ['typeid', 'typename'],
            autoLoad: true
        });
    }

标签: javascriptextjsconstructor

解决方案


您使用的是哪个版本的 ExtJs?

如果它 >= 5,您应该有一个 ViewModel,链接到您的视图。在该视图模型中,您将声明您的组合所需的商店,以及您想要作为文本字段值放置的数据。


推荐阅读