我有一个图标的样本,在一个 HBox
在XML视图中,如下图所示。
<m:HBox>
<core:Icon src="sap-icon://show" color="#007bff" id="test1" press="onPressView" />
<core:Icon src="sap-icon://edit" color="#007bff" id="test2" press="onPressEdit" />
<core:Icon src="sap-icon://print" color="#007bff" id="test3" press="onPressPrint" />
</m:HBox>
在控制器中设置可见 false
我正在做的是..:
let testIcon1 = this.getview().byId('test1');
testIcon1.setVisible(false);
但这是行不通的。
你可能访问的是一个模板控件,而不是真正的渲染控件。如果你在devtools中检查元素,看看渲染的控件(Icon)的ID是否有后缀 "Icon"。__clone<n>
.
由于这样的ID后缀是由框架生成的,因此,访问克隆的控件时,通过 byId
应避免。在这种情况下,有很多其他的解决方案。一般来说,一个好的解决方案是通过绑定控件属性(如 visible
),并从模型中操作该属性。