从他在 ExtJS 5.1 中的方法访问单例值

Access to Singleton values from his method in ExtJS 5.1

我在 ExtJS 5.1 中创建了一个 SingletonClass,其值为 numerotexto,我可以执行获取和设置,但是如果我尝试执行该 SingletonClass 的任何方法,则显示值为undefined.

//SingletonClass.js - Ampliación 8
Ext.define('js.SingletonClass', {
    singleton : true,
    config : {
        numero : 6,
        texto : "nulo"
    },
    elNumero : function () {
        alert("El número de la clase es: " + this.numero);
    },
    elTexto : function () {
        alert("El texto de la clase es: " + js.SingletonClass.getTexto());
    }
});

如您所见,我尝试使用 this.numero 和另一种方法 js.SingletonClass.getTexto() 但没有用

// APP.js - Instanciar clase singleton 

js.SingletonClass.setNumero(10);
alert(js.SingletonClass.getNumero()); // Show: '10'

js.SingletonClass.elNumero(); // Undefined value
js.SingletonClass.elTexto(); // Undefined value

如何从我的 SingletonClass 访问它们自己的属性?

两件事:

  1. 根据 documentation,您需要在构造函数中调用 initConfig。这也适用于单身人士。
  2. 您正在使用 setters/getters,所以不要尝试访问 this.numero。请改用 this.getNumero()

总计:

Ext.define('js.SingletonClass', {
    singleton : true,
    config : {
        numero : 6,
        texto : "nulo"
    },
    constructor: function(config) {
        this.initConfig(config);
        return this;
    },
    elNumero : function () {
        alert("El número de la clase es: " + this.getNumero());
    },
    elTexto : function () {
        alert("El texto de la clase es: " + js.SingletonClass.getTexto());
    }
});
js.SingletonClass.setNumero(10);
alert(js.SingletonClass.getNumero());
js.SingletonClass.elNumero();
js.SingletonClass.elTexto();