Как добавить новый метод в Ext Core? - PullRequest
2 голосов
/ 23 июля 2011

Подскажите, пожалуйста, как добавить новый метод в Ext Core:

Ext.get('id').myMethod();

Не работает:

Ext.extend(Ext.Element, {
    myMethod: function() {
        this.on('click', function() {
             alert(this);
        });
    }
});

1 Ответ

2 голосов
/ 23 июля 2011

(при условии, что вы используете ExtJS 3)

Нет, это неправильный путь.Мы используем extend, когда нам нужно расширить класс и создать наш собственный класс.

Затем, если вы хотите добавить дополнительные функции или переопределить некоторые из основных методов, используйте Ext.override.Это действие является постоянным и разрушительным, так как вы можете переопределить любые определенные методы.Мы используем override, когда хотим применить персональные исправления или глобальные изменения (например, переопределение Ext.form.Field, чтобы обеспечить глобальные, удобные и перекрестные fields функциональные возможности).

В вашем случае кажется, что выприменить этот метод ко всем элементам, которые вы захватили из Ext.get.Вам просто нужно переопределить Ext.Element.

Ext.override(Ext.Element, {
    myMethod: function() {
         this.on('click', function() {
              alert(this);
         });
    }
});

Рабочий пример приведен здесь: jsfiddle .

Обратите внимание, что Ext.get даетВы Ext.Element на успешном звонке.Если вы хотите создать настроенный Ext.Element, обязательно измените Ext.get, чтобы он возвращал ваш собственный настроенный Ext.Element или предоставил собственную настраиваемую функцию для получения элементов.

Приветствия!

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