我正在使用SAPUI5 XML视图
myView.view.xml
<f:SimpleForm id="form1"/>
<f:content id="content1">
<core:Title text="" />
<m:Label text="Label A" />
<m:Input value="10/5/2548" enabled="false" />
<m:Label text="ชั้นที่/ปีที่" />
<m:Input value="1" />
<core:Title text="" />
<m:Label text="Label B" />
<m:Input value="3.25" />
<core:Title text="" />
</f:content>
</f:SimpleForm>
myController.controller.js
addNewContent:function(){
var content = this.getView().byId("form1").getContent();
this.getView().byId("form1").addContent(content);
}
错误消息
对元素的聚合“内容”无效 sap.ui.layout.form.SimpleForm #__ xmlview1--form1
我想在单击(id="content1")
按钮时将内容addNewContent
复制到按钮
任何人都谢谢你
添加更多信息 this is what i want to do
答案 0 :(得分:0)
getContent()
方法返回一个数组sap.ui.core.Element[]
。
addContent()
方法使用单个sap.ui.core.Element
作为参数。
所以您需要执行以下操作:
this.getView().byId("form1").addContent(content[0]);
或者这个:
oForm = this.getView().byId("form1");
content.forEach(oControl => oForm.addContent(oControl))
,或者如果未使用ES6:
oForm = this.getView().byId("form1");
for (var i = 0; i < content.length; i++) {
oForm.addContent(content[i]);
}
我不清楚您要达到的目标。根据您的代码段,您正在尝试从同一位置复制并粘贴到同一位置...
答案 1 :(得分:0)
希望这会对您有所帮助,尝试克隆表格并将其附加到容器中。
XML视图
<Button text="+" press="cloneContent" /><!-- Button for cloning -->
<f:SimpleForm id="form1" editable="false" layout="ResponsiveGridLayout" title="Address" labelSpanXL="3" labelSpanL="3" labelSpanM="3" labelSpanS="12" adjustLabelSpan="false" emptySpanXL="4" emptySpanL="4" emptySpanM="4" emptySpanS="0" columnsXL="1" columnsL="1" columnsM="1" singleContainerFullSize="false">
<f:content>
<core:Title text="" />
<Label text="Label A" />
<Input value="10/5/2548" enabled="false" />
<Label text="ชั้นที่/ปีที่" />
<Input value="1" />
<core:Title text="" />
<Label text="Label B" />
<Input value="3.25" />
<core:Title text="" />
</f:content>
</f:SimpleForm>
<VBox id="contentHolder"></VBox><!-- clone form holder -->
控制器
cloneContent: function(oEvent){
var oForm = this.getView().byId("form1");
if (oForm) {
oFormClone = oForm.clone();
oFormClone.setTitle("");
var oHolder = this.getView().byId("contentHolder");
if (oHolder) {
//oHolder.removeAllItems();//if you want to remove all the previous added item you can uncomment this line
oHolder.addItem(oFormClone);
}
}
}
注意:克隆后要注意结合。如果有任何问题,可以使用oHolder
重新绑定。