LoginSignup
5
1

More than 3 years have passed since last update.

【SAPUI5】コントローラーでよく使うメソッド

Last updated at Posted at 2019-06-10

目的

SAPUI5のコントローラーでよく使うメソッドについてまとめます。

BaseControllerで実装されている処理

※バージョン1.60のテンプレートの場合

テンプレートからアプリを作った場合、共通処理をまとめたBaseControllerというコントローラーが自動的に作られます。BaseControllerはよく使う処理をラッピングしてくれているので、ラッピングされたメソッドを使うことができます。

Routerを取得

BaseControllerでの定義

getRouter : function () {
    return UIComponent.getRouterFor(this);
}

コントローラーから呼び出すとき

//create画面に遷移
this.getRouter().navTo("create");
//notFound画面を表示
this.getRouter().getTargets().display("notFound");

モデルを取得

BaseControllerでの定義

getModel : function (sName) {
    return this.getView().getModel(sName);
}

コントローラーから呼び出すとき

//ビューモデルを取得
this.getModel("createView");

//デフォルトモデル(主にOData)を取得
this.getModel();

ビューモデルを登録

BaseControllerでの定義

setModel : function (oModel, sName) {
    return this.getView().setModel(oModel, sName);
}

コントローラーから呼び出すとき

var oViewModel = new JSONModel({
        busy : true,
        delay : 0
    });

this.setModel(oViewModel, "createView");

i18nのテキストを取得

BaseControllerでの定義

getResourceBundle : function () {
    return this.getOwnerComponent().getModel("i18n").getResourceBundle();
}

コントローラーから呼び出すとき

var sMeesage = this.getResourceBundle().getText("successMessage");

画面項目の操作

IDを指定して項目(オブジェクト)を取得

var oTable = this.byId("table");

項目の値を取得

var sName = this.byId("name").getValue();

項目の属性を変更

this.byId("edit").setEnabled(true);

setXXXで属性を設定、getXXXで属性を取得できる。
詳細は各コントローラーのメソッドを確認
例:sap.m.Button

バインドされた値の操作

バインドされたオブジェクトをJSON形式で取得

var oObject = this.getView().getBindingContext().getObject()

バインドされた値をキーを指定して取得

var sName = this.getView().getBindingContext().getProperty("Name")

//または
var sName = this.getView().getBindingContext().getObject().Name

バインドされたオブジェクトへのパスを取得

var sPath = this.getView().getBindingContext().getPath()

//リターンの例:/SalesOrderSet(5000000001)

イベントパラメータの操作

イベントハンドラメソッドで受け取る、イベントパラメータの操作について。

イベントを発生させる起因となったコントロールのオブジェクトを取得

例:リストの行が選択されたとき、行にバインドされたコンテキストを取得する

onPress : function (oEvent) {
    var studentId = oEvent.getSource().getBindingContext().getProperty("StudentId");
}

イベントに渡されたパラメータを取得する

フィルタに検索条件を入力したときに呼ばれるイベントの例

onSearch : function (oEvent) {
    var sQuery = oEvent.getParameter("query");
}

EventはSourceとParameterでできている
ので、基本的にそのどちらかを使うことになると思われます。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1