Установить свойство / атрибут в компоненте ExtJS - PullRequest
3 голосов
/ 16 января 2012

Можно ли установить для свойства компонента Ext JS (видимость, значение, ...) определенное значение, для смилара - jQuerys [.attr(attributeName, value)][1]?

Я получаю имя компонента, имя свойства / атрибута и значение и должен обновить интерфейс. Мое первое решение работает со «словарем» (да, я разработчик на c #), который вызывает правильный метод для данного атрибута и поддерживает видимость, значение, включено.

var methodMapper = {
  "visibility" : function(comp, value) {
    if(value == "true" || value == "on" || value == "1" || value == "visible")
      comp.show();
    else
      comp.hide();
  },
  "value" : function(comp, value) {
     comp.setValue(value);
  },
  "enable" : function(comp, value) {
    if(value == "true" || value == "on" || value == "1" || value == "visible")
      comp.enable();
    else
      comp.disable();
  }
};

function receiveMessage(element, property, value) {
  var func = methodMapper[property];
  if(!func) return;
  var comp = Ext.getCmp(element); // retrieve component
  func(comp, value); // set property to value
}

Есть ли лучшее решение для установки свойства в компоненте? Я хочу расширить поддерживаемые свойства до ширины, высоты, перетаскивания, ....

1 Ответ

4 голосов
/ 16 января 2012

@ Robar

Если вы хотите работать с атрибутами элемента HTML, лучше вызвать метод getEl() в компоненте ExtJS (скажем, на панели), чтобы получить элемент, связанный с компонентом, изатем вы можете получить / установить атрибуты, например, как вы это делаете в jQuery, потому что в некоторых случаях вы не сможете сопоставить атрибут со свойством или методом компонента.

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