Sap-ui5-data-binding

提供:Dev Guides
移動先:案内検索

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