Sap-ui5-data-binding
SAP UI5-データバインディング
SAP UI5では、*データバインディングコンセプト*を使用して、アプリケーションデータを保持するコントロールにデータをバインドすることにより、データを自動的に更新します。 データバインディングを使用すると、テキストフィールド、シンプルなボタンなどのシンプルなコントロールをアプリケーションデータにバインドでき、新しい値があるとデータが自動的に更新されます。
双方向データバインディングを使用すると、バインドされたコントロールの値が変更されると、アプリケーションデータが更新されます。 値は、ユーザー入力などのさまざまな方法で変更できます。
SAP UI5では、さまざまなデータモデルをデータバインディングに使用できます。 これらのデータモデルはさまざまな機能をサポートしています-
JSONモデル
JSONモデルは、JavaScriptオブジェクトをコントロールにバインドするために使用されます。 このデータモデルはクライアント側のモデルであり、小さなデータセットに推奨されます。 サーバー側のページングや読み込みのメカニズムは提供しません。
主な機能は次のとおりです-
- データバインディングのJSONモデルは、JavaScript表記形式のデータをサポートしています。
- 双方向のデータバインディングをサポートします。
モデルインスタンスの作成-
Var oModel = new sap.ui.model.json.JSONModel(dataUrlorData);
XMLモデル
データバインディングのXMLモデルを使用すると、コントロールをXMLデータにバインドできます。 クライアント側のオブジェクトと小さなデータセットに使用されます。 サーバー側のページングや読み込みのメカニズムは提供していません。
主な機能は次のとおりです-
- データバインディングのXMLモデルは、XMLデータをサポートします。
- また、双方向のデータバインディングもサポートしています。
モデルインスタンスの作成-
Var oModel = new sap.ui.model.xml.XMLModel(dataUrlorData);
ODataモデル
ODataモデルはサーバー側のモデルであるため、サーバー側でデータ全体を使用できます。 クライアント側は行とフィールドのみを表示でき、クライアント側では並べ替えとフィルタリングを使用できません。 これらのタスクを完了するには、このリクエストをサーバーに送信する必要があります。
ODataモデルのデータバインディングは1つの方法ですが、実験的な書き込みサポートを使用して双方向バインディングを有効にすることができます。
主な機能は次のとおりです-
- データバインディングのODataモデルは、Odata準拠のデータをサポートしています。
- このデータモデルを使用すると、OData要求を作成し、応答を処理できます。
- 実験的な双方向バインディングをサポートしています。
モデルインスタンスの作成-
Var oModel = new sap.ui.model.odata.ODataModel (dataUrl [,useJSON, user, pass]);
モデルの割り当て
setModelメソッドを使用して、モデルを特定のコントロールまたはコアに割り当てることができます。
Sap.ui.getcore().setModel(oModel);
モデルをビューにバインドするには-
Var myView = sap.ui.view({type:sap.ui.core.mvc.ViewType.JS, viewname:”view name”});
myView.setModel(oModel);
モデルをコントロールにバインドするには-
Var oTable = sap.ui.getCore().byId(“table”);
oTable.setModel(oModel);
コントロールのプロパティをモデルプロパティにバインドできます。 あなたはbindpropertyメソッドを使用してコントロールにモデルのプロパティをバインドすることができます-
oControl.bindProperty(“controlProperty”, “modelProperty”);
or by using below methodvar
oControl = new sap.ui.commons.TextView({
controlProperty: “{modelProperty}”
});
集約バインディング
集計バインディングを使用して、複数の行をテーブルにバインドするなど、値のコレクションをバインドできます。 集計を使用するには、テンプレートとして機能するコントロールを使用する必要があります。
bindAgregationメソッドを使用して、集計バインディングを定義できます。
oComboBox.bindaggregation( “items”, “/modelaggregation”, oItemTemplate);