1

Web IDE を使用して標準の fiori アプリケーションをカスタマイズしていますが、このアプリケーションでは以下の要件があります。

チェックボックスを1つ追加したいのですが、チェックボックスを選択すると、既存の入力フィールドの1つが表示または非表示になります。複数の画面に同じフィールドがあります。そのため、複数の画面にチェックボックスを追加する必要があります。ただし、ある画面で選択すると、別の画面にも反映されるはずです。

これが私がやったことです。

init メソッドでは、チェックボックスを追加する JavaScript コードを以下に記述しました。

            if(!this.oOtherDate)
            {
                var that = this;
                this.oOtherDate = new sap.m.CheckBox("cOtherDelDate", {
                    text: "{i18n>OTHER_DELIVERY}",
                    selected: "{path : 'soc_cart>/showRddInput'}", // This carries the checkbox selection to other pages. It is JSON model.
                    select: function(oEvent) {
                        var checked = oEvent.getParameters().selected;
                        oModelList.getData().showRddList = !checked;
                        oModelList.getData().showRddInput = checked;
                    }
                });

        }

上記のコードでは、チェック ボックスの選択イベントで、2 つの JSON プロパティを設定しています。1 つはチェックボックスの値用、もう 1 つは 1 つの要素を非表示にするため、またはその逆です。

この時点まで、すべてが正常に機能します。しかし、今、JSON プロパティ値「showRddList」を要素の可視プロパティにバインドするにはどうすればよいでしょうか?

以下を試してみましたが、エラーが発生しています: this.byId("Field1").setVisible("{path : 'soc_cart>/showRddList'}");

setVisible() メソッドはブール値を想定しており、上記のコード行では文字列値と見なされます。

参考までに... 非表示にする必要がある要素が XML ビューで定義されており、ビューを拡張またはカスタマイズして、ビューでバインディング プロパティを指定することはできません。そのため、コントローラーからのみ設定する必要があります。

コントローラから既存の要素に可視プロパティを設定する可能性はありますか?

ありがとう。

4

1 に答える 1

2

あなたが探しているのはbindProperty、入力の方法です。

this.byId("Field1").bindProperty("visible", {
    "soc_cart>/showRddList"
});
于 2016-04-15T13:18:10.630 に答える