SAPUI5 Закрытие фрагмента очищает данные на предыдущем экране - PullRequest
0 голосов
/ 30 января 2020

Я сталкиваюсь с проблемой закрытия 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();
    },

Как только фрагмент закрыт, данные на предыдущем экране, с которого был открыт фрагмент, очищаются.

Я бы действительно Спасибо за помощь.

Спасибо

1 Ответ

1 голос
/ 30 января 2020

Когда вы устанавливаете модель следующим образом:

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

вы переопределяете всю модель приложения без имени! Попробуйте использовать другую именованную модель для данных фрагмента или используйте метод JSONModel.setData(oData, bMerge?): если для bMerge установлено значение true, новые данные объединяются с данными более старой модели.

...