模型数据未清除onRouteMatched

时间:2017-10-20 20:55:19

标签: sapui5

我已经设置了包含空白数组的oViewModelData,它正确地设置为onInit上的模型。

但是,当我再次路由页面而不是刷新页面时(onRouteMatched),旧数据仍然来自上一页。

如何清除/刷新onRouteMatched上的oViewModelData?

oViewModelData: {
    siteInfo: {},
    surveyInfo: {},
    categories: []
},

onInit: function() {
    this.getView().setModel(new JSONModel(this.oViewModelData), "view");
},

_onRouteMatched: function(oEvent) {
    this.getView().setModel(new JSONModel(this.oViewModelData), "view");
}

1 个答案:

答案 0 :(得分:1)

您可以创建一种模板并每次重新初始化,如下所示:

oViewModelDataTemplate: {
    siteInfo: {},
    surveyInfo: {},
    categories: []
},

_onRouteMatched: function(oEvent) {
    this.oViewModelData = jQuery.extend(true, {}, this.oViewModelDataTemplate);
    this.getView().setModel(new JSONModel(this.oViewModelData), "view");
}

......或者只是

_onRouteMatched: function(oEvent) {
    this.oViewModelData = {
        siteInfo: {},
        surveyInfo: {},
        categories: []
    };
    this.getView().setModel(new JSONModel(this.oViewModelData), "view");
}

BTW,不需要模型数据的特殊属性,你总是可以从模型中获取它。