2014-07-11

[SAPUI5/OpenUI5]複数のプロパティをバインドする

SAPUI5/OpenUI5関連の小ネタです。
複数のプロパティをデータバインドする方法についてです。

XMLViewの場合、複数プロパティは以下のように割と簡単に実現できるのですが、JSViewの場合はどうすればいいのでしょうか?

<text text="{Width} x {Depth} x {Height} {DimUnit}"></text>

答えはこちらです。

new sap.m.Text({
    text: {
        parts: [
            {path: "Width"},
            {path: "Depth"},
            {path: "Height"},
            {path: "DimUnit"}
        ],
        formatter: function(width, depth, height, dimUnit){
            return width + " x " + depth  + " x "  + height + " " + dimUnit;
        }
    }
});

通常のformatterを使ったデータバインドはpathformatterプロパティをセットすればいいのですが、複数プロパティの場合はpathpartsの中に含めればできます。

最近、公式のサンプルを見る限りViewはXMLViewを使って書くべきみたいな流れになっていて、JSViewのサンプルが減ってきていますね。。。

こちらに載っていた情報です。

javascript - SAPUI5: How to directly bind two data properties into one control property using OData model? - Stack Overflow