我正在尝试在运行时创建一个sap.m.Text并删除创建的元素。创建很简单,但删除元素是一个问题。我找不到办法去做。
代码:
创建 new sap.m.Text(this.createId(“Row1”))
删除
_oThis.getView().removeContent(1); // Doesn't work
_oThis.getView().removeContent(oObjText); // Doesn't work
_oThis.getView().removeContent(sap.ui.getCore().byId('Row1')); // Doesn't work
_oThis.getView().removeContent(view.byId(oo)); // Doesn't work
_oThis.getView().removeContent('Row1'); // Doesn't work
删除元素os $('Row1')的东西.remove(); //但是如果使用相同的ID“Row1”
添加回来,则不会从聚合中删除并给出重复的ID错误PS: $('Row1')。remove()不能真正起作用,因为它没有从视图对象中删除。如何通过ID从JS View中删除文本/按钮或任何控件?
https://openui5.hana.ondemand.com/docs/api/symbols/sap.ui.core.mvc.View.html#removeContent
答案 0 :(得分:6)
我在本地计算机上创建了一个小的本地示例。你有两个选择,要么在创建时检查你的文本控件是否已经存在,只是做一些调整,或者 - 如果你真的想要一个干净的开始 - 来销毁它:
this.byId("Row1").destroy();
请注意,使用createId:
创建标识符是最佳做法this.createId("Row1");
答案 1 :(得分:1)
您可以使用 .destroy<aggregationName>()
方法删除控件。
例如,sap/f/DynamicPage
有一个名为 <content>
的聚合。 IE。 .destroyContent()
可以使用:
var oDynamicPage = this.byId("dynamicContentForm");
if (oDynamicPage !== undefined) {
oDynamicPage.destroyContent();
}