0

JSONModel のプロパティ (この場合は flag_baz) をチェックボックスにバインドしたいと思います。問題は、json モデルが次のようになっていることです。

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

この場合、X は「真」を意味し、空の文字列は「偽」を意味します。

私がしたいのは、モデルからチェックボックスにバインドするための関数を評価し (「X」/「」を true/false に変換する)、チェックボックスからモデルにバインドするときに他の関数を評価することです (それはから変換されます)。 true/false を "X"/"" に戻します)。

私はこのようなものが欲しいです:

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

funcFromStringToBool がフォーマッタと呼ばれることは知っています。

funcFromBoolToString 関数を追加するにはどうすればよいですか?

これが理にかなっていることを願っています。

事前にt​​hx。

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 に答える