2016-12-19 13 views
2

私はこのAureliaアプリケーションを書いています。私は私のコンポーネントの上にさらに多くの機能(またはその他何でも)をバインドする必要が例のカップルを持って、今すべてのバインディングが準備されているときだけコードを実行してください

export class CustomComponent { 
    @bindable callbackForSomething; 
    @bindable anotherCallback; 
} 

:私はこのように定義されたカスタムコンポーネントを持っていると言います。したがって、各コンポーネントには次のようなコードがあります。

callbackForSomethingChanged() { 
    this._tryRunComponent(); 
} 

anotherCallbackChanged() { 
    this._tryRunComponent(); 
} 

_tryRunComponent() { 
    if (!this.callbackForSomething || !this.anotherCallback) { 
     return; 
    } 

    // run some logic here when I know the component is ready 
} 

AureliaJSにはこれを簡単にするための何かがありますか? 2つのプロパティだけでは迷惑ですが、より多くのプロパティを宣言するコンポーネントがあります。

+0

私はAureliaを使用しませんが、一般的なJSの観点からはPromisesを使用するのに最適な時間のようです。 'Promise.all()'を使って、各バインディングが解決された後にだけ続行してみてください。 – gelliott181

答えて

4

ビューモデルにbindメソッドを追加します。バインド可能なすべてのプロパティが割り当てられたら、Aureliaによって呼び出されます。

その後、バインド可能なプロパティを変更すると、*Changedのメソッドがトリガされます。

+0

Awwww、ねえ!私はこのFWがこのようなものを持っていなければならないことを知っていました。ありがとう! –

関連する問題