简体   繁体   English

从单选按钮Angular Material Dialog中获取价值

[英]Get value from radio button Angular Material Dialog

I have Angular Material dialog , where I updating table clicking change status. 我有Angular Material对话框,我在其中更新表单击更改状态。

I need to get value from radio button in my dialog 我需要从对话框中的单选按钮获取值

Here is full working example 这是完整的工作示例

https://stackblitz.com/edit/angular-w9rbj1 https://stackblitz.com/edit/angular-w9rbj1

Here is code of component 这是组件的代码

   import {Component, Inject, OnInit, ViewEncapsulation} from '@angular/core';
import {MAT_DIALOG_DATA, MatDialogRef, MatDialog} from "@angular/material";
import {FormBuilder, Validators, FormGroup} from "@angular/forms";
import { Payment } from '../payments/payment';


@Component({
    selector: 'editing-dialog',
    templateUrl: './editing-dialog.component.html',
    styleUrls: ['./editing-dialog.component.scss']
})
export class EditingDialogComponent implements OnInit {
    form: FormGroup;
    reason:String;
    id: Number;
    statusdescription: String ;

    constructor(
        private fb: FormBuilder,
        private dialogRef: MatDialogRef<EditingDialogComponent>,
        @Inject(MAT_DIALOG_DATA) data:Payment) {
            this.reason = data.Reason;
            this.id  = data.Id;
            this.statusdescription = data.StatusDescription;
            this.form = fb.group({
                reason: [this.reason, Validators.required],
                id: this.id,
                status: this.statusdescription
            });
    }

    ngOnInit() {

    }
    save() {
        this.dialogRef.close(this.form.value);
    }

    close() {
        this.dialogRef.close();
    }
}

And here is it's html 这是它的HTML

<h2>{{description}}</h2>

<mat-dialog-content [formGroup]="form">

    <mat-form-field>

        <input matInput min="0" max="100" required placeholder="Payment Reason" formControlName="reason" value="{{reason}}">

    </mat-form-field>
    <mat-radio-group>
        <mat-radio-button value="Approve">Approve</mat-radio-button>
        <mat-radio-button value="Reject">Reject</mat-radio-button>
      </mat-radio-group> </mat-dialog-content>

<mat-dialog-actions>

    <button class="mat-raised-button" (click)="save()">
        Ok
    </button>



    <button class="mat-raised-button"
            (click)="close()">
        Close
    </button>

</mat-dialog-actions>

So when I click radio button I need to get the value of clicked radio button in answer. 所以,当我点击单选按钮时,我需要获得点击单选按钮的值。

So status needs to be radio button 所以状态需要是单选按钮

How I can do this correctly? 我怎么能正确地做到这一点?

As you are using reactive forms, use formControlName on mat-radio-group just like you did on matInput field. 当您使用反应式表单时, formControlNamemat-radio-group上使用formControlName ,就像在matInput字段上matInput I have forked and updated your Stackblitz which now logs the radio button value on the console as well when you click save button. 我已经分叉并更新了Stackblitz ,它现在在单击“保存”按钮时也会在控制台上记录单选按钮值。 You can get and use this value where you want in you payments component. 您可以在付款组件中获取并使用此值。

Try this; 尝试这个;

@Input() name: string <mat-radio-group name="status" ngModel #status="ngModel"> <mat-radio-button value="Approve">Approve</mat-radio-button> <mat-radio-button value="Reject">Reject</mat-radio-button> </mat-radio-group> @Input()name:string <mat-radio-group name="status" ngModel #status="ngModel"> <mat-radio-button value="Approve">Approve</mat-radio-button> <mat-radio-button value="Reject">Reject</mat-radio-button> </mat-radio-group>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM