mes*_*lds 8 angular-material angular
关于关闭对话框.https://material.angular.io/components/component/dialog afterClosed不可用吗?
与官方主要文件一样:
Property 'then' does not exist on type '() => Observable<any>'. [default] Checking finished with 1 errors
我试过订阅,但也没办法.
Vad*_*imB 21
基于他们文档的示例部分
let dialogRef = this.dialog.open(DialogResultExampleDialog);
dialogRef.afterClosed().subscribe(result => {
this.selectedOption = result;
});
Run Code Online (Sandbox Code Playgroud)
但是如果需要,你总是可以将结果转换成承诺
dialogRef.afterClosed().toPromise()
Run Code Online (Sandbox Code Playgroud)
不要忘记添加toPromise支持
import "rxjs/add/operator/toPromise";
Run Code Online (Sandbox Code Playgroud)
小智 16
https://material.angular.io/components/component/dialog
afterClosed方法返回一个Observable,因此它不像Promise对象那样.
为避免在Observable上使用toPromise方法,您可以在第一个事件后使用take(1)自动取消订阅:
dialogRef.afterClosed().take(1).subscribe(result => {
console.log(`Dialog result: ${result}`); // Pizza!
});
Run Code Online (Sandbox Code Playgroud)
No need to unsubscribe from afterClosed() as it auto completes itself:
https://github.com/angular/material2/blob/ae41a0ad69ca26c600f0f56c68dd5a1c102d4f1f/src/lib/dialog/dialog-ref.ts#L75
| 归档时间: |
|
| 查看次数: |
21270 次 |
| 最近记录: |