5.20193.637
WjOptions Wijmo API クラス

WjOptions クラス

WijmoのAngular 2相互運用のグローバルオプションを公開します。

階層

  • WjOptions

プロパティ

プロパティ

静的 asyncBindings

asyncBindings: boolean

Wijmoコンポーネントが双方向バインドプロパティのバインディングソースを非同期的に更新するかまたは同期的に更新するかを示します。

このプロパティがtrue(デフォルト)に設定されている場合、双方向バインディングのあるWijmoコンポーネントのプロパティ (WjInputNumber.valueなど)を変更すると、現在の変更検出サイクルが完了した後でコンポーネントがバインディングソースプロパティを非同期に更新します。 このプロパティーをfalseに設定すると、バインディングソースはすぐに更新されます。 また、バインディングソースが更新された後に、このプロパティ値に応じて、 該当するプロパティ変更イベント(WjInputNumber.valueChangedなど)も非同期的または同期的に発生されます。

コンポーネントの asyncBindings プロパティに特定のブール値を設定することでこのグローバル設定を、

Wijmoコンポーネントの特定のインスタンスに対して変更できます。 非同期的なバインディングソースの更新は、Wijmoのバージョン350で紹介されました。 以前のバージョンでは、コンポーネントのプロパティが変更された直後にバインディングソースが更新されていました。この場合、デバッグモードでAngularを実行しているアプリケーションでExpressionChangedAfterItHasBeenCheckedError例外が発生する可能性があります。 たとえば、コンポーネントのプロパティ値が0.12345に設定されている場合、 formatプロパティを'n2' に設定してampbampWjInputNumberamp/blt コンポーネントのvalue プロパティに双方向バインドすると、WjInputNumberは即座に値を0.12に変換します。これにより、 コンポーネントのプロパティ(バインディング元)がAngularによって更新され、 その値が0.12345から0.12に変更されます。このソース更新が同期的に実行される場合、 バインディングソースプロパティが同じ変更検出サイクルで値を変更しますが、これはAngularによって禁止されています。 Angularがデバッグモードで実行されている場合、 変更検出サイクルごとに特別なチェックが実行されます。そののとき、変更が検出され、 ExpressionChangedAfterItHasBeenCheckedError 例外が発生します。 現在の変更検出サイクルが完了した後にバインディングソースプロパティが更新されるため、非同期てきなバインディングソースの更新によってこの問題が解決されます。 ExpressionChangedAfterItHasBeenCheckedError が問題ではなく、バインド元の更新が行われた際にアプリケーションロジックの一部が敏感な場合は、 グローバル asyncBindings プロパティをfalseに設定してこの機能を変更できます。ただし、これは、 最初のWijmoコンポーネントがアプリケーションロジックによってインスタンス化される前に実行する必要があります。 これを行う最も良い場所は、アプリケーションのroot NgModuleを宣言しているファイルとなります。 上記は次のようなコードで行うことができます:

import * as wjBase from 'wijmo/wijmo.angular2.directivebase';
wjBase.WjOptions.asyncBindings = false;

または、asyncBindings プロパティを使用して、特定のコンポーネントの更新モードを変更することもできます。 次に例を示しています。

<wj-input-number [asyncBindings]="false" [(value)]="amount"></wj-input-number>