我试图摧毁全球模型,但没有运气。我有过滤器的按钮,如下所示:
navToSecond : function (oEvent){
var oObject = this.getView().byId("inp").getValue();
sap.ui.getCore().setModel(oObject, "Filters");
this.getRouter().navTo("second");
},
在第二个视图中,在第一个视图中填充输入字段后,我有一个带有过滤oData的智能表。然后我按下按钮导航回第一页,我想刷新或销毁全局模型并再次从字段读取输入。然后它应该发送新的请求URL。
我是这样想的:
sap.ui.getCore().getModel("Filters").destroy();
要么
sap.ui.getCore().getModel("Filters").refresh(true);
如果你想使用destroy
和refresh
函数,你必须确认sap.ui.getCore().getModel("Filters")
结果对象有这两个函数。
我猜你可以尝试这个:
sap.ui.getCore().setModel(null, "Filters");
要么:
sap.ui.getCore().setModel("", "Filters");
这个帖子的问题是“如何破坏SAPUI5中的全局模型”
英怡正确回答。如果取消设置模型,将删除对模型的所有引用,垃圾收集器可以完成其工作。
但是你真正的问题是触发执行查询来更新你的表。破坏和重新创建模型是错误的方法。如何处理我在其他主题中对此主题进行描述的事件。
一旦模型从sap.ui.getCore()
被摧毁,就会有一个标志,表明模型已被破坏。