首页 > 解决方案 > SAPUI5 Fragment close 清除上一屏的数据

问题描述

我在 SAPUI5 关闭片段时遇到问题。我正在创建一个片段并显示一个 PDF 文件。但是当我关闭片段时,它会完美关闭,但会清除上一个屏幕上的数据,从片段被提升的地方。

onMenuNavToTerms: function (oEvent) {

        this._sValidPath = sap.ui.require.toUrl("demo/smartapp/pdf") + "/TC.pdf";
        if (!this._onPdfDiag) {
            this._onPdfDiag = sap.ui.xmlfragment("pdfDisplayFragment", "demo.smartapp.view.DisplayPdf", this);
            this.getView().addDependent(this._onPdfDiag);
        }
        this._oModel = new JSONModel({
            Source: this._sValidPath,
            Title: "Terms and Conditions",
            Height: "600px"
        });

        this.getView().setModel(this._oModel);
        this._onPdfDiag.open();
    },

上面的代码打开片段并显示 PDF。现在下面的代码显示了我如何关闭片段:

    onPdfCancelPressed: function (oEvent) {
        // var oView = this.getView();
        var oView = this.getView();
        this._onPdfDiag.close();
        this._onPdfDiag.destroy();
    },

关闭片段后,将清除打开片段的上一个屏幕上的数据。

我真的很感激帮助。

谢谢

标签: sapui5sap-fiori

解决方案


当您像这样设置模型时:

   this.getView().setModel(this._oModel);

您正在覆盖整个应用程序的未命名模型!尝试对片段数据使用不同的命名模型或使用方法JSONModel.setData(oData, bMerge?):如果设置bMerge为 true,则新数据将与旧模型数据合并。


推荐阅读