在ExtJS组件中设置属性/属性

时间:2012-01-16 11:33:16

标签: javascript extjs

是否可以将Ext JS组件属性(visibility,value,...)设置为特定值,smilar to jQuerys [.attr(attributeName, value)][1]

我正在获取组件名称,属性/属性名称和值,并且必须更新UI。 我的第一个解决方案是使用'字典'(是的,我是一个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
}

有没有更好的解决方案来设置组件中的属性?我想将支持的属性扩展为width,height,draggable,....

1 个答案:

答案 0 :(得分:4)

@Robar

如果你想使用HTML元素的属性,最好在ExtJS组件(比如面板)上调用getEl()方法来获取与组件关联的元素,然后你可以得到/设置像你在jQuery中如何做的属性,因为在某些情况下,你可能无法将属性映射到组件属性或方法。