Sapui5 如何为sap.m.DatePicker指定约束?

Sapui5 如何为sap.m.DatePicker指定约束?,sapui5,Sapui5,是我们在controller.js中为日期选择器指定最小值/最大值约束的方式。 但是如何在XML视图中做到这一点呢 以下XML中的代码不起作用 不幸的是,在另一个绑定定义中没有绑定支持(以及任何),这就是为什么约束中的绑定路径(如'/min'或'/max'无效的原因。这是不可能的,因为只有扩展自的模块支持数据绑定特性 因此,这些定义必须在XML视图之外的JS中完成。这样的解决方法之一是在控件实例上调用高级APIbindProperty(在我们的例子中),同时可以将控件设置保留在XML视图中

是我们在controller.js中为日期选择器指定
最小值
/
最大值
约束的方式。 但是如何在XML视图中做到这一点呢

以下XML中的代码不起作用


不幸的是,在另一个绑定定义中没有绑定支持(以及任何),这就是为什么约束中的绑定路径(如
'/min'
'/max'
无效的原因。这是不可能的,因为只有扩展自的模块支持数据绑定特性

因此,这些定义必须在XML视图之外的JS中完成。这样的解决方法之一是在控件实例上调用高级API
bindProperty
(在我们的例子中),同时可以将控件设置保留在XML视图中


this.byId(“dp”).bindValue({
路径:“/val”,
类型:“sap.ui.model.type.Date”,
格式选项:{/*…*/},
限制条件:{
最小值:myModel.getProperty(“/min”),
最大值:myModel.getProperty(“/max”),
},
});
或者,您可以在XML视图中保留绑定路径,并使用
-PropertyBinding实例仅在JS中设置绑定:


“sap/ui/model/type/Date”中需要的日期类型 const type=新的日期类型({ //格式选项 图案:“yyyy-MM-dd”, 对,, }, { //约束条件 最小值:myModel.getProperty(“/min”), 最大值:myModel.getProperty(“/max”), }); this.byId(“dp”).getBinding(“value”).setType(type,“string”);
setType
的第二个参数是
value
属性的JS类型的名称,也称为“内部类型”。在本例中,它是
“string”

内部类型是将值格式化为的元素的属性类型


我们如何在XML视图中执行相同的操作?我的意思是,我们如何使用view model设置约束?@MahdiJ.Ansari如回答中所述,既不支持将模型数据绑定到
约束
,也不支持从XMLView向其分配模型数据。即使在controller中也不可能?@MahdiJ.Ansari您可以将模型数据分配到controller中的
约束
(如回答中所示),但由于不是从处理绑定的ManagedObject派生的。即使是,所有控件都应该以某种方式具有额外的聚合以启用“类型”绑定。