Angular [mat-dialog-close]="false" 不起作用
Angular [mat-dialog-close]="false" does not work
如果 [mat-dialog-close]
的值为 false
,为什么 [mat-dialog-close]="createFurtherCheckbox.checked ? 'false' : 'true'"
不起作用?在对话框中,我通过单击提交按钮创建一个对象,如果选中某个复选框,这会询问我是否要创建另一个对象,对话框不会关闭,因此我可以创建另一个对象(在本例中为课程) .如果复选框已选中,我希望对话框重置并保持打开状态。
即使我尝试 [mat-dialog-close]="false"
对话框也会关闭。
但是 [type]="createAnotherCheckbox.checked ? 'reset' : 'button'"
'reset' 类型是否正确更改。 (用于重置表单中的表单控件)
创建课程-dialog.component.html
<mat-dialog-actions>
<mat-checkbox #createFurtherCheckbox>Create another course?</mat-checkbox>
<button mat-raised-button [mat-dialog-close]="createFurtherCheckbox.checked ? 'false' : 'true'" [type]="createFurtherCheckbox.checked ? 'reset' : 'button'"
(click)="Submit()" [disabled]="courseForm.invalid">Create course</button>
<button mat-raised-button mat-dialog-close>Cancel</button>
</mat-dialog-actions>
我认为您误解了 mat-dialog-close directive 的输入。
@Input('mat-dialog-close')
dialogResult: any
您正在为订阅 afterClosed 时获得的结果设置 return 值
喜欢这里
dialogRef.afterClosed().subscribe(result => {
console.log('The dialog was closed');
this.animal = result;
});
使用 ngif 和两个按钮的快速解决方法
<ng-container *ngIf="createAnotherCheckbox.checked">
<button mat-raised-button type="reset" (click)="Submit()" [disabled]="courseForm.invalid">
Create course</button>
</ng-container>
<ng-container *ngIf="!createAnotherCheckbox.checked">
<button mat-raised-button type="button" (click)="Submit()" [disabled]="courseForm.invalid"
mat-dialog-close>Create course</button>
</ng-container>
好的谢谢,你是对的。
我使用两个 ng-container:
解决了我的问题
<ng-container *ngIf="createAnotherCheckbox.checked">
<button mat-raised-button type="reset" (click)="Submit()" [disabled]="courseForm.invalid">
Create course</button>
</ng-container>
<ng-container *ngIf="!createAnotherCheckbox.checked">
<button mat-raised-button type="button" (click)="Submit()" [disabled]="courseForm.invalid"
mat-dialog-close>Create course</button>
</ng-container>
如果 [mat-dialog-close]
的值为 false
,为什么 [mat-dialog-close]="createFurtherCheckbox.checked ? 'false' : 'true'"
不起作用?在对话框中,我通过单击提交按钮创建一个对象,如果选中某个复选框,这会询问我是否要创建另一个对象,对话框不会关闭,因此我可以创建另一个对象(在本例中为课程) .如果复选框已选中,我希望对话框重置并保持打开状态。
即使我尝试 [mat-dialog-close]="false"
对话框也会关闭。
但是 [type]="createAnotherCheckbox.checked ? 'reset' : 'button'"
'reset' 类型是否正确更改。 (用于重置表单中的表单控件)
创建课程-dialog.component.html
<mat-dialog-actions>
<mat-checkbox #createFurtherCheckbox>Create another course?</mat-checkbox>
<button mat-raised-button [mat-dialog-close]="createFurtherCheckbox.checked ? 'false' : 'true'" [type]="createFurtherCheckbox.checked ? 'reset' : 'button'"
(click)="Submit()" [disabled]="courseForm.invalid">Create course</button>
<button mat-raised-button mat-dialog-close>Cancel</button>
</mat-dialog-actions>
我认为您误解了 mat-dialog-close directive 的输入。
@Input('mat-dialog-close')
dialogResult: any
您正在为订阅 afterClosed 时获得的结果设置 return 值 喜欢这里
dialogRef.afterClosed().subscribe(result => {
console.log('The dialog was closed');
this.animal = result;
});
使用 ngif 和两个按钮的快速解决方法
<ng-container *ngIf="createAnotherCheckbox.checked">
<button mat-raised-button type="reset" (click)="Submit()" [disabled]="courseForm.invalid">
Create course</button>
</ng-container>
<ng-container *ngIf="!createAnotherCheckbox.checked">
<button mat-raised-button type="button" (click)="Submit()" [disabled]="courseForm.invalid"
mat-dialog-close>Create course</button>
</ng-container>
好的谢谢,你是对的。 我使用两个 ng-container:
解决了我的问题<ng-container *ngIf="createAnotherCheckbox.checked">
<button mat-raised-button type="reset" (click)="Submit()" [disabled]="courseForm.invalid">
Create course</button>
</ng-container>
<ng-container *ngIf="!createAnotherCheckbox.checked">
<button mat-raised-button type="button" (click)="Submit()" [disabled]="courseForm.invalid"
mat-dialog-close>Create course</button>
</ng-container>