0

我想将 JSONModel 中的属性(在本例中为 flag_baz)绑定到复选框。问题是 json 模型看起来像这样。

{
  foo: "Foo", 
  bar:"Bar", 
  flag_baz : "X"
}

在这种情况下,X 表示“真”,空字符串表示“假”

我想做的是评估一个从模型绑定到复选框的函数(这会将“X”/“”转换为真/假)并在从复选框绑定到模型时评估其他一些函数(这将从真/假回到“X”/“”)。

我想要这样的东西:

var checkBox = new Checkbox();
checkBox.bindProperty("checked", "flag_baz", funcFromStringToBool, funcFromBoolToString);

我知道 funcFromStringToBool 被称为格式化程序。

我将如何添加 funcFromBoolToString 函数?

希望这是有道理的。

提前谢谢。

4

1 回答 1

1

好吧,以防万一我自己找到了答案。

所有绑定都可以使用这样的类型

checkBox.bindProperty("checked", { 
      path : "flag_baz", 
      type : new BooleanStringType()
});

BooleanStringType 类看起来像这样:

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
    }
});
于 2015-05-27T13:23:25.207 回答