点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
您好,我正在尝试重新打开一个对话框,该对话框存在一些来自r3的问题,因此第一次可以正常使用,但是例如,如果我转到另一个应用程序并再次尝试打开对话框,则会出现 错误是因为我正在尝试添加和已存在的ID"添加具有重复ID'pe_Z1'的元素""
所以我不正确清洁this.formEncuesta.removeAllContent();吗? ???
这是我的代码
abrirFragment:function(){ 尝试{ this.formEncuesta.removeAllContent(); 如果(!this.formEncuesta){ var sServiceURL ="/img/sap/opu/odata/sap/ZCLMM_GW_ENCUESTAPROVEEDOR_SRV"; var oModel3 = new sap.ui.model.odata.ODataModel(sServiceURL,true); var data =""; var path ="/img/preguntasSet"; var oJsonModel2 = new sap.ui.model.json.JSONModel(); oModel3.read(path,null,null,false,function(oData,response){ 数据= response.body; }); var mijson = JSON.parse(data); var jsonPreguntas = mijson; this.formEncuesta = new sap.ui.layout.form.SimpleForm(null,{ 标签:SpanXL:12, labelSpanL:12, labelSpanM:12, labelSpanS:12, AdjustLabelSpan:false, emptySpanXL:4, emptySpanL:4, emptySpanM:4, emptySpanS:0, XL:2列, L列:2, M列:2, singleContainerFullSize:false }); this.preguntas = jsonPreguntas.d.results; 为(this.preguntas中的var ele){ this.formEncuesta.addContent(new sap.m.Label({ 文字:this.preguntas [ele] .Denomrespuesta, 宽度:" 500px" })); 如果(this.preguntas [ele] .Tpans ===" A1"){ var select = new sap.m.ActionSelect({ id:" pe _" + this.preguntas [ele] .Idpreg, 宽度:" 100%" }); var oItem = new sap.ui.core.Item({ 文字:" SI", 键:" SI" }); select.insertItem(oItem,0); var oItem = new sap.ui.core.Item({ 文字:"否", 关键:"否" }); select.insertItem(oItem,1); this.formEncuesta.addContent(select); }否则,如果(this.preguntas [ele] .Tpans ===" A2"){ this.formEncuesta.addContent(new sap.m.Input({ id:" pe _" + this.preguntas [ele] .Idpreg, 类型:sap.m.InputType.Text, maxLength:80, placeHolder:"", 宽度:" 100%" })); }否则,如果(this.preguntas [ele] .Tpans ===" A3"){ this.formEncuesta.addContent(new sap.m.Input({ id:" pe _" + this.preguntas [ele] .Idpreg, 类型:sap.m.InputType.Number, placeHolder:"", 宽度:" 100%" })); }否则,如果(this.preguntas [ele] .Tpans ===" A4"){ var sServiceURL2 ="/img/sap/opu/odata/sap/ZCLMM_GW_ENCUESTAPROVEEDOR_SRV"; var oModel32 = new sap.ui.model.odata.ODataModel(sServiceURL,true); var data2 =""; var path ="/img/matchcoderespuestaSet?$ filter = Idpreg eq'" + this.preguntas [ele] .Idpreg +"'和Tipo eq'" + this.preguntas [ele] .Tpans +"'"; var oJsonModel22 = new sap.ui.model.json.JSONModel(); oModel32.read(path,null,null,false,function(oData,response){ data2 = response.body; }); var mijson2 = JSON.parse(data2); var respuestaMatch = mijson2; this.matchcode = respuestaMatch.d.results; var select = new sap.m.ActionSelect({ id:" pe _" + this.preguntas [ele] .Idpreg }); 为(this.matchcode中的var ele2){ var oItem = new sap.ui.core.Item({ 文字:this.matchcode [ele2] .Respuesta, 密钥:this.matchcode [ele2] .Respuesta }); select.insertItem(oItem,ele2); } this.formEncuesta.addContent(select); } } this.formEncuesta.addContent(new sap.m.Label({ 文字:"" })); this.formEncuesta.addContent(new sap.m.Button({ 文字:" Aceptar", 类型:"接受", 按下:function(){ this.obtenerValoresEncuesta(); } .bind(this) })); this.formEncuesta.addContent(new sap.m.Button({ 文字:" Cancelar", 类型:"拒绝", 按下:function(){ this.dialogEncuesta.close(); } .bind(this) })); 如果(!this.dialogEncuesta){ this.dialogEncuesta = sap.ui.xmlfragment(" solicitudCreacionPedido.view.fragments.encuesta",this); } this.dialogEncuesta.addContent(this.formEncuesta); } //if(!this.dialogEncuesta){ //this.dialogEncuesta = sap.ui.xmlfragment(" solicitudCreacionPedido.view.fragments.encuesta",this); //this.dialogEncuesta.addContent(this.formEncuesta); //} this.dialogEncuesta.open(); } catch(err){ MessageBox.error("错误提示"。); console.log(err); 返回false; } },
(23.1 kB)
您应该使用addDependent方法。 因此,一旦离开该fiori应用程序,该对话框将被框架自动销毁。 在某些特殊情况下,您需要手动销毁它,并在视图的onExit函数中将该值设置为null。
但是对于您的情况,您可以使用addDepenedent函数。
https://sapui5.hana.ondemand.com/1.32.16/docs/guide/ 4da72985139b4b83b5f1c1e0c0d2ed5a.html
问候,
马赫什语
Naoto Amari 您可以在此处粘贴console.log映像吗。.
一周热门 更多>