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

sap.ui.unified.Calendar的selectedDates聚合绑定问题

解决sap.ui.unified.Calendar绑定日期数组不生效的问题

嘿,我看你在给Calendar绑定日期数组的时候遇到了小卡点,其实你离成功真的很近啦!咱们来揪出代码里的两个关键问题:

问题1:模型变量名不匹配

你创建的JSON模型是oModel2,但调用setModel时却用了未定义的oModel——这直接导致模型根本没正确挂载到UI5 Core里,日历自然拿不到要选中的日期数据。

问题2:绑定路径的转义字符错误

在JavaScript代码里写绑定路径时,不需要用>(这是XML视图里的转义写法),直接用>就行,否则UI5会解析错误的路径,绑定自然失效。

修正后的完整代码

var oCal = new sap.ui.unified.Calendar();
// 保持模型变量名一致
var oModel2 = new sap.ui.model.json.JSONModel([
 {myDate: new Date("2018-01-10"), tt:""},
 {myDate: new Date("2018-01-11"), tt:""},
 {myDate: new Date("2018-01-12"), tt:""},
]);
// 用正确的模型变量设置到Core
sap.ui.getCore().setModel(oModel2, "MyData3");
var oItemTemplate = new sap.ui.unified.DateRange({
 // 替换转义字符为正常的>
 startDate: "{MyData3>myDate}",
 endDate: "{MyData3>myDate}"
});
// 绑定selectedDates聚合
oCal.bindAggregation("selectedDates", "MyData3>/", oItemTemplate);

修正这两个问题后,日历应该就能正确预选中那三个日期了。如果之后还有问题,你可以用UI5的调试工具(比如Chrome的UI5 Inspector)检查模型数据是否正确加载,或者查看绑定的状态,这样能更快定位问题~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:43:36