Для чего alternateClassNames предназначены - PullRequest
5 голосов
/ 19 августа 2011

Итак, Int ExtJS у нас есть:

  • "реальное" имя типа (то, которое идет в качестве первого параметра в Ext.define)
  • псевдоним
  • alternateClassName
  • xtype

Самым загадочным для меня является alternateClassName. Зачем они нам нужны, если у нас уже есть такой набор дескрипторов типов? Обратите внимание, что я не пытаюсь обсудить качество идеологического подхода. Вопрос только в том, почему это было реализовано и для каких целей.

Ответы [ 3 ]

8 голосов
/ 20 августа 2011

Они используются для обратной совместимости. Например, Ext.grid.Panel в ExtJS 4 имеет

alternateClassName: ['Ext.list.ListView', 'Ext.ListView', 'Ext.grid.GridPanel']

потому что он заменяет ListView и раньше назывался Ext.grid.GridPanel.

2 голосов
/ 20 августа 2011

Насколько я знаю, alternateClassName полезно вызывать один класс с разными именами, и мы можем использовать действия в соответствии с именем класса.

Код ниже будет полезен для вас:

Ext.define('Sample', {    
    alternateClassName: ['Example', 'Important'],     
    code: function(msg) {        
        alert('Sample for alternateClassName... ' + msg);     
    },
    renderTo :document.body
});
var hi = Ext.create('Sample');
hi.code('Sample');
var hello = Ext.create('Example');
hello.code('Example');
var imp = Ext.create('Important');
imp.code('Important');

В приведенном выше коде вы можете найти такие вещи, как:

1.Мы используем три имени, называемые Sample, Example, Важные для одного класса.
2.Мы можем использовать действие, например, alertсообщение в соответствии с именем класса.
3. Мы отображаем предупреждающее сообщение на основе имени класса. Здесь мы отображаем предупреждающее сообщение для отображения результата. Но мы можем написать некоторые действия в соответствии с именем класса, например, еслимы хотим создать одну кнопку, и нам нужно написать действие для кнопки в соответствии с именем класса, тогда это будет полезно.

Вы можете напечатать рабочий образец ниже:

http://jsfiddle.net/kesamkiran/kVbra/30/

0 голосов
/ 14 мая 2015

псевдоним

Псевдоним состоит из пространства имен и имени, объединенного точкой как [пространство имен]. [Имя]

Из-за использования пространства имен, его использованиеограничен контекстом, например виджет, хранилище, контроллер и т. д. (например, для производного класса контроллера вы можете использовать псевдоним, например «controller.foo», и теперь вы можете использовать только имя «foo» при присоединении контроллера к представлению)

xtype

Применяется только к производным классам Ext.Component

Полезно при определении представлений, поскольку вы пишете меньше кода

alternateClassName

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

Для одноэлементного класса, используемого для хранения констант, объявленных как app.util.navigationConstants , вы можетеопределить альтернативное имя класса, которое короче, NavConsts.И теперь вы можете использовать NavConsts.CONST_NAME вместо app.util.navigationConstants.CONST_NAME

...