仅具有 getter 或 setter 的 ExtJS 配置成员

ExtJS config members with getter or setter only

如何创建仅具有 gettersetter 但不能同时具有两者的配置成员?

默认情况下,它会同时创建 gettersetter

Ext.define('Myapp.myclass', {
   config: {
      conf1 : true,  // Make this only have setter.
      conf2 : false  // Make this only have getter.
   },

   constructor: function(config) {
       this.apply(config);
   }
});

Configs 实际上创建了 4 个辅助方法,非常有用。

_config1             this is where the value gets saved
getConfig1           gets you the value
applyConfig1         allows you to check if the setter value is valid
updateConfig1        do some stuff to dom elements
setConfig1           call applyConfig1 and updateConfig1 if available and set the value to _config1. Usually you dont want to touch this, but use updateConfig1

如果您不想要这些,那么您必须自己完成工作,但您可能无法获得可绑定或其他 ExtJS 开箱即用的功能。对我来说,不使用配置没有多大意义。

Ext.define('Myapp.myclass', {
    _conf1: true,  // Make this only have setter.
    setConfig1: function(value) {
        let oldValue = this._config1;

        if(oldValue === value) return;

        this._config1 = value;
    },

    _conf2: true,  // Make this only have getter.
    getConfig2: function() {
        return this._config2;
    }
});