我已经设置了包含空白数组的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");
}
答案 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,不需要模型数据的特殊属性,你总是可以从模型中获取它。