Day12-Angular Material 介紹
Day13-Angular Material: Table
Day14-Angular Material: DatePicker 日期選擇器
Day15-Angular Material: Select 下拉選單
Day16-Angular Material: Checkbox
這篇應該是 Angular Material 最後一篇
官方中文網站 - Dialog
Dialog 是模擬一個對話視窗的感覺。
像這樣:
import { MatDialogModule } from "@angular/material";
@NgModule({
imports: [
MatDialogModule,
],
})
ng g c test-dialog
<!--test-dialog.component.html-->
<mat-dialog-title>
<!--標題-->
</mat-dialog-title>
<mat-dialog-content>
<!--內容-->
</mat-dialog-content>
<mat-dialog-actions>
<button class="mat-raised-button"(click)="onClose()">Close</button>
<button class="mat-raised-button mat-primary"(click)="onSave()">Save</button>
</mat-dialog-actions>
// test-dialog.component.ts
export class TestDialogComponent implements OnInit {
constructor(
private dialogRef: MatDialogRef<TestDialogComponent>,
@Inject(MAT_DIALOG_DATA) data, //接收從父層傳送的資料
){}
ngOnInit() {
console.log(this.data.cat); //打開 F12 主控台顯示: Bubble
}
/* 儲存 */
onSave() {
// 結束時 傳值回父層
this.dialogRef.close(this.form.value);
}
/* 關閉 */
onClose() {
// 結束時 不傳任何東西
this.dialogRef.close();
}
}
<!--XXX.component.html-->
<button (click)="openDialog()">Open</button>
// XXX.component.ts
constructor(
public _MatDialog: MatDialog
){}
/* 打開對話方塊 */
openDialog(){
const dialogRef = this._MatDialog.open(TestDialogComponent, {
data: { cat: "Bubble" } // 傳值給 Dialog
});
dialogRef.afterClosed().subscribe((res) => {// 當 dialog 結束時、接收傳回來的值
if(res){
console.log(res);
}
});
}
可以用以下兩種方式進行設定:
MatDialogConfig
openDialog() {
const dialogConfig = new MatDialogConfig();
dialogConfig.disableClose = true;
dialogConfig.autoFocus = true;
this.dialog.open(CourseDialogComponent, dialogConfig);
}
openDialog() {
const dialogRef = this._MatDialog.open(TestDialogComponent, {
disableClose: true,
autoFocus: true
});
}
選項 | 預設 | 說明 |
---|---|---|
data |
傳值進去對話方塊 | |
hasBackdrop |
true | 是否應具有陰影背景,以防 User 在對話框開啟時還點到其他 UI 的部分 |
panelClass |
新增 自訂 CSS 類別清單、到對話方塊面板 | |
backdropClass |
新增 自訂 CSS 類別清單、到對話方塊背景 | |
position |
定義對話方塊的起始絕對位置 | |
direction |
ltr | 定義了對話框內的元素是左對齊(ltr)還是右對齊(rtl) |
closeOnNavigation |
true | 定義當我們導航到另一路由時、對話方塊是否應自動關閉 |
width |
寬度 | |
height |
高度 | |
minWidth |
最小寬度 | |
minHeight |
最小高度 | |
maxWidth |
最大寬度 | |
maxHeight |
最大高度 |
Angular Material Dialog: A Complete Example