仅在所有绑定准备就绪时运行代码

时间:2016-12-19 20:13:30

标签: javascript aurelia aurelia-binding

所以我正在写这个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有什么能让这更容易吗?只有两个属性令人讨厌,但我有组件声明了更多的属性。

1 个答案:

答案 0 :(得分:4)

向您的视图模型添加bind方法。一旦分配了所有可绑定属性,它将由Aurelia调用。

对可绑定属性的后续更改将触发您的*Changed方法。