我正在刷新我的视图模型onRouteMatched ...
_onRouteMatched: function(oEvent) {
this.getView().setModel(new JSONModel({siteInfo: {}, surveyInfo: {}, categories: []}), "view");
var oViewModel = this.getView().getModel("view");
}
但是,如果我在没有刷新的情况下返回页面(按后退箭头然后返回),我再次创建视图时会出现重复的ComponentId错误。
var oPanel = new sap.m.Panel({
expandable: true,
expanded: false,
headerText: oData.results[0].CategoryDesc,
id: "Panel" + index
});
就好像视图组件“Panel”仍然存在,因此只能在刷新时创建一个新组件,而不是onRouteMatched。
如果刷新页面,这样可以正常工作,但是如何在onRouteMatched上刷新视图?
答案 0 :(得分:1)
简单地避免编程控件的创建(通过编码)并尝试定义所有的东西吧 XML视图和使用绑定 - 它非常强大的功能,可以解决99%的问题。 您只需定义一次绑定并仅通过模型中的数据修改来更改视图,而不是通过DOM操作(绑定将根据模型状态免费执行)。
我建议您完成官方文档中的数据绑定教程。
至于你的问题,如果想象没有绑定的解决方案,你应该总是手动销毁这些东西并再次重新创建它。或者进行一些存在检查。