我使用aurelia对话框显示帐户的详细信息。
我在aurelia对话框中看到的所有示例都涉及将整个对象传递给对话框并使用该对象作为对话框的视图模型。我想要做的是传递ID并运行AJAX调用以获取详细数据。
这很简单,可以让它工作,但是当我从对话框的视图模型上的activate
调用返回一个承诺时,对话框根本不会显示,直到承诺得到解决。这真是太糟糕了,因为有延迟。
我希望立即显示对话框并显示一个微调器,直到承诺结算。有一个简单的方法吗?有没有人看过或做过这个?
答案 0 :(得分:2)
the dialog doesn't display at all until the promise is resolved
这是预期的设计,你无法返回任何内容,它会显示出来。在这种情况下,您只需在解析承诺时标记一些内容。
export class MyDialogVM {
showSpinner = false;
// ...
activate(id) {
this.showSpinner = true;
this.http.get(`/my-api/${id}`).then(result => {
this.showSpinner = false;
});
}
}
您的对话框视图
<template>
<!-- other stuff -->
<i class="fa fa-spinner fa-spin" show.bind="showSpinner"></i>
<!-- other stuff -->
</template>