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
相关产品推荐
相关产品推荐

