0

UI5 XML ビューで特定の EntitySet を識別する動的パラメーターを渡す方法はありますか? 私は ODataV2 で UI5 を使用しています。UI5 テキスト オブジェクトの XML は次のとおりです。

<Tex text="{/ProductSet('AR')/ProductName}"/>

「AR」は特定の EntitySet のキーであることに注意してください。これにより、特定の ProductSet から ProductName が得られます。

しかし、キーをハードコーディングする代わりに、動的に渡す方法はありますか? たとえば、次のようなものです。

<Tex text="{/ProductSet('{ProductKey}')/ProductName}"/> 


                        
4

2 に答える 2

0

そこで、コントローラーに必要な EntitySet をプリロードすることで、この問題を解決しました。それが最善の方法かどうかはわかりませんが、希望どおりに機能します。コントローラーの "onBeforeRendering" メソッドで ProductSet をプリロードするため、ビューの他の非同期呼び出しが行われたときにデータが既に利用可能になります。

onBeforeRendering:function(){           
    this.loadProductSet();  
    },

    

    loadProductSet: function () {
        return new Promise(function (resolve, reject) {
            this.getView().getModel().read("/ProductSet", {
                success: function (oData) {
                    resolve();
                }.bind(this),
                error: function (oError) {
                    reject();
                }.bind(this)

            });
        }.bind(this));

    },

XML ビューでは、フォーマッターを使用して特定のセットの ID を渡します。

<ObjectAttribute  title="Name" text= "{parts :['ProductKey'], formatter: '.formatter.getProductSet' }" />

そしてここにフォーマッタコード:

getProductSet: function (sProductKey) {
        var oModel = this.getView().getModel();
        var sProductName = oModel.getProperty("/ProductSet('" + sProductKey + "')/ProductName");
        return sProductName;
    }

しかし、XML でパラメータを動的に渡す方法があれば、それは非常に素晴らしいことです :) いつの日かそれが実装されることを願っています。

于 2021-02-03T12:14:11.103 に答える