You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SAPUI5双向绑定:每次导航至应用时如何清除/刷新绑定?

解决方案:自由风格SAPUI5应用返回时重新加载OData绑定

一、通过manifest配置实现(优先方案)

在manifest.json的路由配置中,给应用1、应用2对应的路由添加重置属性,确保每次进入视图时清空绑定状态:

  • 在路由数组的对应路由项里,新增config配置:
"config": {
  "clearControlAggregation": true,
  "resetModel": true
}

clearControlAggregation会清空视图的控件聚合,resetModel会重置模型的缓存与状态,这样每次进入视图时,双向绑定会重新初始化并从服务器拉取最新的OData数据。

如果是基于组件的路由,也可以在targets对应的视图配置中添加上述属性,确保视图每次激活时重置绑定。

二、控制器中手动触发刷新

若manifest配置无法满足需求,可在视图的路由匹配事件中手动刷新绑定:

  1. 在控制器init方法中注册路由匹配监听:
this.getRouter().getRoute("App1Route").attachMatched(this.onRouteMatched, this);
  1. 实现onRouteMatched方法强制刷新数据:
onRouteMatched: function() {
  const oModel = this.getView().getModel();
  // 全量刷新模型数据,跳过缓存
  oModel.refresh(true);
  // 也可针对特定控件的绑定单独刷新
  // this.getView().byId("targetControl").getBinding("items").refresh(true);
}

如果使用OData v4模型,需调整刷新参数:

oModel.refresh({ refreshMode: "Full" });

内容的提问来源于stack exchange,提问作者Adam Harkus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 05:35:29