Class: DataModelManager

DataModelManager

new DataModelManager()

データモデルマネージャ

データモデルを管理するデータモデルマネージャクラスです。このインスタンスはh5.core.data.createManager()で作成します。

このクラスはEventDispatcherのメソッドを持ちます。イベント関連のメソッドについてはEventDispatcherミックスインを参照してください。
データモデルマネージャは、データモデルマネージャが管理するデータモデルに変更があった場合に'itemsChange'イベントが発火します。

Since:
  • 1.1.0
Mixes In:
Source:

Members

(static) models :Object

このデータモデルマネージャが管理するDataModelインスタンス。

createModel()で作成したモデルは、データモデルマネージャの管理下に置かれ、modelsから参照できます。

{モデル名: データモデルインスタンス, ...} の構造を持つオブジェクトです。

Type:
  • Object
Since:
  • 1.1.0
Source:

(static) name :String

データモデルマネージャ名

h5.core.data.createManager()の第一引数に指定した値が格納されます。

Type:
  • String
Since:
  • 1.1.0
Source:

Methods

(static) beginUpdate()

アップデートセッションを開始します。

beginUpdate()が呼ばれると、アップデートセッションを開始します。endUpdate()を呼ぶとアップデートセッションを解除します。

既にアップデートセッション中であれば何もしません。

アップデートセッション中は、このDataModelManager、及びこのの管理下にあるDataModel、DataItemのイベントは発火しません。 endUpdate()が呼ばれた時点で、イベントが発火します。

アップデートセッション中の変更イベントはすべてマージされてendUpdate()時に発火します。

例:
// managerの管理下にあるDataItem
item.set('value', 'a');
item.addEventListener('change', function(e){
    // oldValueとnewValueをalertで表示するイベントリスナ
    alert('oldValue:' + e.prop.value.oldValue + ', newValue:' + e.prop.value.newValue);
});
// アップデートセッション
manager.beginUpdate();
item.set('value', 'b');
item.set('value', 'c');
manager.endUpdate();
// "oldValue: a, newValue: c" とアラートが出る
Since:
  • 1.1.0
Source:

(static) createModel(descriptor) → {DataModel|Array.<DataModel>}

データモデルを作成します。

引数にはデータモデルディスクリプタを渡します。

Parameters:
Name Type Description
descriptor Object | Array.<Object> データモデルディスクリプタまたはその配列
Properties
Name Type Description
name String データモデル名。必須。
base String マネージャに属する別のデータモデルのschemaを継承する場合に指定します。『'@'+継承先データモデル名』で指定してください。
schema Object スキーマを定義したオブジェクトを指定します。必須。
Returns:
データモデルを返します。ディスクリプタが配列で渡された場合はそれぞれについてのデータモデルを配列で返します。
Type
DataModel | Array.<DataModel>
Since:
  • 1.1.0
Source:

(static) dropModel(nameOrModel)

指定されたデータモデルを削除します。

データアイテムを保持している場合、アイテムをこのデータモデルからすべて削除した後 データモデル自体をマネージャから削除します。

Parameters:
Name Type Description
nameOrModel String | DataModel データモデル名またはデータモデルインスタンス
Since:
  • 1.1.0
Source:

(static) endUpdate()

アップデートセッションを終了します。

アップデートセッション中でなければ何もしません。イベントの発火など詳細はbeginUpdate()の説明を参照してください。

Since:
  • 1.1.0
Source:

(static) isInUpdate() → {Boolean}

アップデートセッション中かどうかを返します。

beginUpdate()が呼ばれてからendUpdate()が呼ばれるまでの間はアップデートセッション中です。

Returns:
アップデートセッション中かどうか
Type
Boolean
Since:
  • 1.1.0
Source:

addEventListener(type, listener)

イベントリスナを登録します。

第一引数にイベント名、第二引数にイベントリスナを渡し、イベントリスナを登録します。指定したイベントが起こった時にイベントリスナが実行されます。

イベントリスナは、関数またはEventListener インタフェースを実装するオブジェクト(handleEventプロパティに関数を持つオブジェクト)で指定できます。

指定したイベントに、指定したイベントリスナが既に登録されていた場合は何もしません。

同一のイベントに対して複数回addEventListener()を呼び、複数のイベントリスナを登録した場合は、イベント発火時に登録した順番に実行されます。

第3引数以降が指定されていても無視されます。

Parameters:
Name Type Description
type String イベント名
listener function | Object イベントリスナまたはhandleEventを持つイベントリスナオブジェクト
Since:
  • 1.1.0
Mixes In:
Source:

dispatchEvent(event) → {Boolean}

イベントをディスパッチします

イベントオブジェクトを引数に取り、そのevent.typeに登録されているイベントリスナを実行します。 イベントオブジェクトにpreventDefault()関数を追加してイベントリスナの引数に渡して呼び出します。

戻り値は『イベントリスナ内でpreventDefault()が呼ばれたかどうか』を返します。

Parameters:
Name Type Description
event Object イベントオブジェクト
Returns:
イベントリスナ内でpreventDefault()が呼ばれたかどうか。
Type
Boolean
Since:
  • 1.1.0
Mixes In:
Source:

hasEventListener(type, listener) → {Boolean}

イベントリスナが登録されているかどうかを返します

第一引数にイベント名、第二引数にイベントリスナを渡し、指定したイベントに指定したイベントリスナが登録済みかどうかを返します。

Parameters:
Name Type Description
type String イベント名
listener function イベントリスナ
Returns:
第一引数のイベント名に第二引数のイベントリスナが登録されているかどうか
Type
Boolean
Since:
  • 1.1.0
Mixes In:
Source:

removeEventListener(type, listener)

イベントリスナを削除します。

第一引数にイベント名、第二引数にイベントリスナを渡し、指定したイベントから指定したイベントリスナを削除します。

指定したイベント名に指定したイベントリスナが登録されていない場合は何もしません。

Parameters:
Name Type Description
type String イベント名
listener function イベントリスナ
Since:
  • 1.1.0
Mixes In:
Source: