是否可以将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,....
答案 0 :(得分:4)
@Robar
如果你想使用HTML元素的属性,最好在ExtJS组件(比如面板)上调用getEl()
方法来获取与组件关联的元素,然后你可以得到/设置像你在jQuery中如何做的属性,因为在某些情况下,你可能无法将属性映射到组件属性或方法。