Class: Controller

Controller

new Controller()

コントローラのコンストラクタ

このオブジェクトは自分でnewすることはありません。 コントローラ化して動作させる場合はh5.core.controller()を使用してください。

Source:

Members

(static) __construct :function

コントローラのライフサイクル __construct

コントローラ生成時に実行されるライフサイクルメソッドの一つ。コントローラ定義オブジェクトの__constructに関数を記述することで動作する。 指定はオプションであり、記述しなくてもよい。

コントローラ生成時のライフサイクルメソッドはController.__construct, Controller.__init, Controller.__postInit, Controller.__readyの順序で動作する。

Type:
  • function
Source:
See:

(static) __dispose :function

コントローラのライフサイクル __dispose

コントローラの破棄時に実行されるライフサイクルメソッドの一つ。コントローラ定義オブジェクトの__disposeに関数を記述することで動作する。 指定はオプションであり、記述しなくてもよい。

コントローラ破棄時のライフサイクルメソッドはController.__unbind,Controller.__disposeの順序で動作する。

Type:
  • function
Source:
See:

(static) __init :function

コントローラのライフサイクル __init

コントローラ生成時に実行されるライフサイクルメソッドの一つ。コントローラ定義オブジェクトの__initに関数を記述することで動作する。 指定はオプションであり、記述しなくてもよい。

コントローラ生成時のライフサイクルメソッドはController.__construct, Controller.__init, Controller.__postInit, Controller.__readyの順序で動作する。

Type:
  • function
Source:
See:

(static) __name :String

コントローラ名.
Type:
  • String
Source:

(static) __postInit :function

コントローラのライフサイクル __postInit

コントローラ生成時に実行されるライフサイクルメソッドの一つ。コントローラ定義オブジェクトの__postInitに関数を記述することで動作する。 指定はオプションであり、記述しなくてもよい。

コントローラ生成時のライフサイクルメソッドはController.__construct, Controller.__init, Controller.__postInit, Controller.__readyの順序で動作する。

Type:
  • function
Source:
See:

(static) __ready :function

コントローラのライフサイクル __ready

コントローラ生成時に実行されるライフサイクルメソッドの一つ。コントローラ定義オブジェクトの__readyに関数を記述することで動作する。 指定はオプションであり、記述しなくてもよい。

コントローラ生成時のライフサイクルメソッドはController.__construct, Controller.__init, Controller.__postInit, Controller.__readyの順序で動作する。

Type:
  • function
Source:
See:

(static) __templates :String|Array.<String>

テンプレート.
Type:
  • String | Array.<String>
Source:

(static) __unbind :function

コントローラのライフサイクル __unbind

コントローラの破棄時に実行されるライフサイクルメソッドの一つ。コントローラ定義オブジェクトの__unbindに関数を記述することで動作する。 指定はオプションであり、記述しなくてもよい。

コントローラ破棄時のライフサイクルメソッドはController.__unbind,Controller.__disposeの順序で動作する。

Type:
  • function
Source:
See:

(static) initPromise :Promise

コントローラのライフサイクルイベント__initについてのPromiseオブジェクトを返します。
Type:
  • Promise
Source:

(static) isInit :Boolean

コントローラのライフサイクルイベント__initが終了したかどうかを返します。
Type:
  • Boolean
Source:

(static) isPostInit :Boolean

コントローラのライフサイクルイベント__postInitが終了したかどうかを返します。
Type:
  • Boolean
Source:

(static) isReady :Boolean

コントローラのライフサイクルイベント__readyが終了したかどうかを返します。
Type:
  • Boolean
Source:

(static) log :Log

コントローラのロガーを返します。

コントローラ内のメソッドでthis.log.debug('debug message');のように記述して使用します。ロガーの使い方の詳細はLogをご覧ください。

Type:
Source:

(static) parentController :Controller

親子関係を持つコントローラの親コントローラを返します。親コントローラがいない場合、nullを返します。
Type:
Source:

(static) postInitPromise :Promise

コントローラのライフサイクルイベント__postInitについてのPromiseオブジェクトを返します。
Type:
  • Promise
Source:

(static) preInitPromise :Promise

__templatesに指定したテンプレートファイルの読み込みに、成功または失敗したかの状態を持つPromiseオブジェクト。 このオブジェクトが持つ以下の関数で、状態をチェックすることができます。

state()

戻り値 結果
"resolved" 読み込みに成功
"rejected" 読み込みに失敗
"pending" 読み込みが開始されていないまたは読み込み中
注意: jQuery1.7.x未満の場合、この関数は使用できません。

isResolved(), isRejected()

isResolved()の戻り値 isRejected()の戻り値 結果
true false 読み込みに成功
false true 読み込みに失敗
false false 読み込みが開始されていないまたは読み込み中

また、preInitPromise.done()に関数を設定すると読み込み成功時に、 preInitPromise.fail()に関数を設定すると読み込み失敗時に、設定した関数を実行します。

Type:
  • Promise
Source:

(static) readyPromise :Promise

コントローラのライフサイクルイベント__readyについてのPromiseオブジェクトを返します。
Type:
  • Promise
Source:

(static) rootController :Controller

親子関係を持つコントローラ群の一番祖先であるコントローラを返します。祖先がいない場合、自分自身を返します。
Type:
Source:

(static) rootElement :Element

コントローラがバインドされた要素.
Type:
  • Element
Source:

(static) scene :Scene

シーン操作に関するモジュール

コントローラ化の際に、コントローラに"scene"プロパティが追加されます。

使用方法についてはSceneをご覧ください。

Type:
Source:

(static) view :View

ビュー操作に関するメソッドを格納しています。

Viewクラスと同様にテンプレートを扱うクラスですが、Controllerの持つViewは以下の点でViewクラスとは異なります。

  • append/update/prependメソッドでのターゲット(出力先)について、 コントローラのイベントハンドラと同様にコントローラのルートエレメントを起点に選択します。 また、グローバルセレクタも使用可能です。
  • 
    // 例
    // thisはコントローラ
    this.view.append('.target', 'tmpId'); // コントローラのルートエレメント内のtargetクラス要素
    this.view.append('{.target}', 'tmpId'); // $('.target')と同じ
    this.view.append('{rootElement}', 'tmpId'); // コントローラのルートエレメント(this.rootElementと同じ)
    this.view.append('{document.body}', 'tmpId'); // body要素
    
  • 指定されたIDのテンプレートの探索を、親コントローラのView、h5.core.viewについても行います。
  • 自分のコントローラ、親コントローラ、親コントローラの親コントローラ、…、ルートコントローラ、h5.core.view、の順番に探索して、 最初に見つかったテンプレートを返します。
  • 
    // 例
    // parentControllerは子コントローラを持つコントローラ
    var parent = parentController.view;
    var child = parentController.childController;
    // viewにテンプレートを登録
    h5.core.view.register('a', 'a_coreView');
    h5.core.view.register('b', 'b_coreView');
    parent.view.register('a', 'a_parent');
    parent.view.register('d', 'd_parent');
    child.view.register('c', 'c_child');
    child.get('c'); // c_child
    child.get('d'); // d_parent
    child.get('a'); // a_parent
    child.get('b'); // b_coreView
    
  • bindメソッドはコメントビューを使用したバインドが可能です。
  • コメントビューの詳細については、リファレンス(仕様詳細) >> コメントビューをご覧ください。

Type:
Source:
See:

Methods

(static) $find(selector) → {jQuery}

コントローラがバインドされた要素内から要素を選択します。
Parameters:
Name Type Description
selector String セレクタ
Returns:
セレクタにマッチするjQueryオブジェクト
Type
jQuery
Source:

(static) bind(targetElement, paramopt) → {Controller}

コントローラを要素へ再度バインドします。子コントローラでは使用できません。
Parameters:
Name Type Attributes Description
targetElement String | Element | jQuery バインド対象とする要素のセレクタ、DOMエレメント、もしくはjQueryオブジェクト.
セレクタで指定したときにバインド対象となる要素が存在しない、もしくは2つ以上存在する場合、エラーとなります。
param Object <optional>
初期化パラメータ.
初期化パラメータは __init, __readyの引数として渡されるオブジェクトの argsプロパティとして格納されます。
Returns:
コントローラ.
Type
Controller
Source:

(static) deferred() → {Deferred}

Deferredオブジェクトを返します。
Returns:
Deferredオブジェクト
Type
Deferred
Source:

(static) disableListeners()

コントローラに定義されているリスナーの実行を禁止します。
Source:

(static) dispose() → {Promise}

コントローラのリソースをすべて削除します。
Controller#unbind() の処理を包含しています。
Returns:
Promiseオブジェクト
Type
Promise
Source:

(static) enableListeners()

コントローラに定義されているリスナーの実行を許可します。
Source:

(static) indicator() → {Indicator}

指定された要素に対して、インジケータ(メッセージ・画面ブロック・進捗)の表示や非表示を行うためのオブジェクトを取得します。

h5.ui.indicatorと同様にインジケータオブジェクトを取得する関数ですが、ターゲットの指定方法について以下の点でh5.ui.indicatorと異なります。

  • 第1引数にパラメータオブジェクトを渡してください。
  • 
    // thisはコントローラ
    this.indicator({
    	target: this.rootElement
    }); // OK
    this.indicator(this.rootElement, option); // NG
    
  • targetの指定は省略できます。省略した場合はコントローラのルートエレメントがインジケータの出力先になります。
  • targetにセレクタが渡された場合、要素の選択はコントローラのルートエレメントを起点にします。また、グローバルセレクタを使用できます。 (コントローラのイベントハンドラ記述と同様です。)
  • 
    // thisはコントローラ
    this.indicator({target:'.target'}); // コントローラのルートエレメント内のtargetクラス要素
    this.indicator({target:'{.target}'}); // $('.target')と同じ
    this.indicator({target:'{rootElement}'); // コントローラのルートエレメント(this.rootElementと同じ)
    this.indicator({target:'{document.body}'); // body要素
    
Returns:
インジケータオブジェクト
Type
Indicator
Source:
See:

(static) manageChild(コントローラインスタンス)

コントローラを子コントローラとして動的に追加します

追加されたコントローラは呼び出し元のコントローラの子コントローラとなります。

Parameters:
Name Type Description
コントローラインスタンス Controller
Source:

(static) off(target, eventName, listener)

イベントハンドラを動的にアンバインドします。

第1引数targetの指定にはコントローラのイベントハンドラ記述と同様の記述ができます。 つまりセレクタの場合はルートエレメントを起点に選択します。またグローバルセレクタで指定することもできます。、

Parameters:
Name Type Description
target String | Object イベントハンドラのターゲット
eventName String イベント名
listener function ハンドラ
Source:

(static) on(target, eventName, listener)

イベントハンドラを動的にバインドします。

第1引数targetの指定にはコントローラのイベントハンドラ記述と同様の記述ができます。 つまりセレクタの場合はルートエレメントを起点に選択します。またグローバルセレクタで指定することもできます。、

ここで追加したハンドラはコントローラのunbind時にアンバインドされます。

Parameters:
Name Type Description
target String | Object イベントハンドラのターゲット
eventName String イベント名
listener function ハンドラ
Source:

(static) own(func) → {function}

指定された関数に対して、コンテキスト(this)をコントローラに変更して実行する関数を返します。
Parameters:
Name Type Description
func function 関数
Returns:
コンテキスト(this)をコントローラに変更した関数
Type
function
Source:

(static) ownWithOrg(func) → {function}

指定された関数に対して、コンテキスト(this)をコントローラに変更し、元々のthisを第1引数に加えて実行する関数を返します。
Parameters:
Name Type Description
func function 関数
Returns:
コンテキスト(this)をコントローラに変更し、元々のthisを第1引数に加えた関数
Type
function
Source:

(static) throwCustomError(customType, msgOrErrObj, var_argsopt)

指定された値をメッセージとして例外をスローします。

このメソッドでスローされたErrorオブジェクトのcustomTypeプロパティには、第一引数で指定した型情報が格納されます。

第二引数がオブジェクトまたは文字列によって、出力される内容が異なります。

文字列の場合
文字列に含まれる{0}、{1}、{2}...{n} (nは数字)を、第二引数以降に指定した値で置換し、それをメッセージ文字列とします。

オブジェクトの場合
Erorrオブジェクトのdetailプロパティに、このオブジェクトを設定します。

Parameters:
Name Type Attributes Description
customType String 型情報
msgOrErrObj String | Object メッセージ文字列またはオブジェクト
var_args Any <optional>
置換パラメータ(第一引数が文字列の場合のみ使用します)
Source:

(static) throwError(msgOrErrObj, var_argsopt)

指定された値をメッセージとして例外をスローします。

第一引数がオブジェクトまたは文字列によって、出力される内容が異なります。

文字列の場合
文字列に含まれる{0}、{1}、{2}...{n} (nは数字)を、第二引数以降に指定した値で置換し、それをメッセージ文字列とします。

オブジェクトの場合
Erorrオブジェクトのdetailプロパティに、このオブジェクトを設定します。

Parameters:
Name Type Attributes Description
msgOrErrObj String | Object メッセージ文字列またはオブジェクト
var_args Any <optional>
置換パラメータ(第一引数が文字列の場合のみ使用します)
Source:

(static) trigger(event, parameteropt) → {jQueryEvent}

ルート要素を起点に指定されたイベントを実行します。

第2引数に指定したparameterオブジェクトは、コントローラのイベントハンドラで受け取るcontext.evArgに格納されます。

parameterに配列を指定した場合は、context.evArgに渡した配列が格納されます。

戻り値は、jQueryEventオブジェクトを返します。

長さ1の配列をparameterに指定した場合について


trigger('click', ['a']);
のように、1要素だけの配列を渡した場合は、配列ではなくその中身がcontext.evArgに格納されます。(jQuery.triggerと同様です。)

triggerで、渡した配列の長さに関わらず、渡したデータを配列としてハンドラで扱いたい場合は、以下のような方法を検討してください。。

  • parameterをオブジェクトでラップする。
    
    // trigger
    this.trigger('hoge', {data: ary});
    // イベントハンドラ
    '{rootElement} hoge': function(context){
      var ary = context.evArg.data;
      for(var i = 0, l = ary.length; i < l; i++){
        // 配列に対する処理
      }
    }
    
  • イベントハンドラ側で、受け取ったデータが配列でなかったら配列でラップしてから扱う
    
    // trigger
    this.trigger('hoge', ary);
    // イベントハンドラ
    '{rootElement} hoge': function(context){
      var ary = $.isArray(context.evArg) ? context.evArg: [context.evArg];
      for(var i = 0, l = ary.length; i < l; i++){
        // 配列に対する処理
      }
    }
    
Parameters:
Name Type Attributes Description
event String | jQueryEvent イベント名またはjQueryEventオブジェクト
parameter Object <optional>
パラメータ
Returns:
event イベントオブジェクト
Type
jQueryEvent
Source:

(static) triggerIndicator(opt) → {Indicator}

インジケータの生成を上位コントローラまたはフレームワークに移譲します。
例えば、子コントローラにおいてインジケータのカバー範囲を親コントローラ全体(または画面全体)にしたい場合などに使用します。
このメソッドを実行すると、「triggerIndicator」という名前のイベントが発生します。また、イベント引数としてオプションパラメータを含んだオブジェクトが渡されます。
イベントがdocumentまで到達した場合、フレームワークが自動的にインジケータを生成します。
途中のコントローラでインジケータを生成した場合はevent.stopPropagation()を呼んでイベントの伝搬を停止し、イベント引数で渡されたオブジェクトの indicatorプロパティに生成したインジケータインスタンスを代入してください。
indicatorプロパティの値がこのメソッドの戻り値となります。
Parameters:
Name Type Description
opt Object オプション
Properties
Name Type Attributes Description
message String <optional>
メッセージ
percent Number <optional>
進捗を0~100の値で指定する。
block Boolean <optional>
操作できないよう画面をブロックするか (true:する/false:しない)
Returns:
インジケータオブジェクト
Type
Indicator
Source:

(static) unbind()

コントローラのバインドを解除します。子コントローラでは使用できません。
Source:

(static) unmanageChild(コントローラインスタンス, andDisposeopt) → {Promise}

子コントローラを動的に削除
Parameters:
Name Type Attributes Default Description
コントローラインスタンス Controller
andDispose Boolean <optional>
true 第1引数で指定されたコントローラをdisposeするかどうか。指定無しの場合はdisposeします。
Returns:
Type
Promise
Source: