2015-05-19 117 views
0

我想從JSONModel綁定屬性(在這種情況下是flag_baz)複選框。 事情是,json模型看起來像這樣。OpenUI5綁定屬性的功能,而不是直接訪問

{ 
    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函數?

希望這是有道理的。

Thx提前。

回答

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 
    } 
});