我有一个包含图标元素的按钮。该按钮被称为 obj 。
我需要通过usind .show()和.hide()方法更改按钮图标的可见性。
现在我这样做(但我觉得这不是一个真正的方式):
obj.getInnerItems()[0].hide();
它不好,因为我依赖于一个恒定的组件结构,如果在下一个版本的ExtJS中发生某些变化,逻辑就会被打破。
有没有更好的做法来解决这个问题?
答案 0 :(得分:0)
更好的方法是使用setter方法。您可以将其与null一起使用来隐藏图标并重置为初始配置以显示。
var btn = Ext.create('Ext.button.Button', {
renderTo: Ext.getBody(),
text: 'Test',
icon: 'images/test.svg'
});
// hide icon
btn.setIcon(null);
// show icon
btn.setIcon(btn.getInitialConfig('icon'));