OpenUI5 绑定 属性 与功能,而不是直接访问
OpenUI5 binding property with a function, instead of direct access
我想将一个 属性(在本例中为 flag_baz)从 JSONModel 绑定到一个复选框。
问题是 json 模型看起来像这样。
{
foo: "Foo",
bar:"Bar",
flag_baz : "X"
}
在这种情况下,X 表示 "true",空字符串表示 "false"
我想做的是评估一个从模型绑定到复选框的函数(这会将 "X"/"" 转换为 true/false)并在从模型的复选框(将从 true/false 转换回 "X"/"")。
我想要这样的东西:
var checkBox = new Checkbox();
checkBox.bindProperty("checked", "flag_baz", funcFromStringToBool, funcFromBoolToString);
我知道 funcFromStringToBool 被称为格式化程序。
如何添加 funcFromBoolToString 函数?
希望这是有道理的。
提前致谢。
好吧,以防万一,我自己找到了答案。
所有绑定都可以使用这样的类型
checkBox.bindProperty("checked", {
path : "flag_baz",
type : new BooleanStringType()
});
BooleanStringType class 看起来像这样:
sap.ui.model.SimpleType.extend("BooleanStringType", {
//called when going from model to ui
formatValue : function(flag_baz){
return flag_baz === "X";
},
//called when going from ui back to the model
parseValue : function(flag_baz){
return flag_baz ? "X" : "";
},
validateValue : function(flag_baz){
//some validation if needed
}
});
我想将一个 属性(在本例中为 flag_baz)从 JSONModel 绑定到一个复选框。 问题是 json 模型看起来像这样。
{
foo: "Foo",
bar:"Bar",
flag_baz : "X"
}
在这种情况下,X 表示 "true",空字符串表示 "false"
我想做的是评估一个从模型绑定到复选框的函数(这会将 "X"/"" 转换为 true/false)并在从模型的复选框(将从 true/false 转换回 "X"/"")。
我想要这样的东西:
var checkBox = new Checkbox();
checkBox.bindProperty("checked", "flag_baz", funcFromStringToBool, funcFromBoolToString);
我知道 funcFromStringToBool 被称为格式化程序。
如何添加 funcFromBoolToString 函数?
希望这是有道理的。
提前致谢。
好吧,以防万一,我自己找到了答案。
所有绑定都可以使用这样的类型
checkBox.bindProperty("checked", {
path : "flag_baz",
type : new BooleanStringType()
});
BooleanStringType class 看起来像这样:
sap.ui.model.SimpleType.extend("BooleanStringType", {
//called when going from model to ui
formatValue : function(flag_baz){
return flag_baz === "X";
},
//called when going from ui back to the model
parseValue : function(flag_baz){
return flag_baz ? "X" : "";
},
validateValue : function(flag_baz){
//some validation if needed
}
});