验证sap.m.DatePicker
输入的常规方法如下所示:
new sap.m.DatePicker({
value : {
path : "someModel>/SomeDate",
type : new sap.ui.model.type.Date({}, {
minimum : new Date()
})
}
})
我有问题,"最小"日期将取决于不同的其他参数。 一个类型的绑定似乎不起作用(或者我做错了什么?)。
我很乐意拥有这样的功能:
new sap.m.DatePicker({
value : {
path : "someModel>/SomeDate",
type : new sap.ui.model.type.Date({}, {
minimum : "{someModel>/MinimumDate}"
})
}
})
任何人都知道如何解决这个问题? 我更愿意避免使用id来获取控制器中的控件。
答案 0 :(得分:1)
我构建了以下解决方案。也许有更好的方法?
数据类型的定义:
jQuery.sap.declare("my.CallbackDateType");
sap.ui.model.type.Date.extend("my.CallbackDateType", {
constructor : function () {
sap.ui.model.type.Date.apply(this, arguments);
this.sName = "CallbackDateType";
},
validateValue : function(oValue) {
var that = this;
if (that.oConstraints.callback!==undefined) {
that.oConstraints.callback[0].call(that.oConstraints.callback[1], that);
}
return sap.ui.model.type.Date.prototype.validateValue.call(this, oValue);
}
});
像这样使用:
new sap.m.DatePicker({
value : {
path : "model>/Date",
type : new my.CallbackDateType({}, {
minimum : new Date(),
callback : [oController.getMinimumDate, oController]
})
}
})