对使用 "byId "访问的控件进行操作没有任何影响。

问题描述 投票:0回答:1

我有一个图标的样本,在一个 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);

但这是行不通的。

sapui5
1个回答
1
投票

你可能访问的是一个模板控件,而不是真正的渲染控件。如果你在devtools中检查元素,看看渲染的控件(Icon)的ID是否有后缀 "Icon"。__clone<n>.

由于这样的ID后缀是由框架生成的,因此,访问克隆的控件时,通过 byId 应避免。在这种情况下,有很多其他的解决方案。一般来说,一个好的解决方案是通过绑定控件属性(如 visible),并从模型中操作该属性。

© www.soinside.com 2019 - 2024. All rights reserved.