Ошибка при создании объектов с ExtJS - PullRequest
0 голосов
/ 19 октября 2011

У меня возникают проблемы при попытке создать новый объект в ExtJS.Сначала я создаю новый объект, затем создаю другой объект того же класса.В этом классе у меня есть свойство, которое называется «форма».Это свойство имеет тип «объект».Я покажу ниже:

Ext.define('ExampleClass', {
    extend: 'Ext.Component',
    form: {
        last: null
    },
    initComponent: function() {
        if(this.form.last == null) {
            this.form.last = this;
        }
        else {
            console.log(this.form);
        }
        this.callParent(arguments);
    }
});

Код прост.Когда я создаю первый объект, хорошо.Когда я создаю второй объект, консоль показывает первый объект (ввод условия else).Это происходит только тогда, когда у меня есть объект как свойство класса.Это может быть ошибкой Ext или мне действительно нужно клонировать все объекты в классе каждый раз, когда я создаю новый объект?

1 Ответ

2 голосов
/ 20 октября 2011

Вам нужно создать свою форму в initComponent, поскольку вы хотите отдельный экземпляр для каждого ExampleClass экземпляра.

initComponent: function() {
    this.form = {
        last: null
    };
    ...

В вашей текущей реализации есть только один form объект, так как Ext.define вызывается только один раз .Затем при создании экземпляра ссылка на существующий объект передается экземплярам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...