一次设置两个javascript变量,英语

问题描述 投票:1回答:2

im试图使用对话框弹出窗口一次设置两个变量,但是由于某种原因,它仅显示playerRequested变量,而不显示活动变量。这是我的html代码

<body>
    <h1>Create A Team</h1>
    <p>Players Needed</p>
    <input matInput type="number" min="1" max="4" [(ngModel)]="data.requestedPlayers">

    <p>Activity</p>
    <mat-button-toggle-group #togglegroup = "matButtonToggleGroup" [(ngModel)]="data.activity">
        <mat-button-toggle value="Unrated">Unrated</mat-button-toggle>
        <mat-button-toggle value="Competitive">Competitive</mat-button-toggle>
    </mat-button-toggle-group>
    {{togglegroup.value}}
    <button mat-raised-button [mat-dialog-close]="data.activity" [mat-dialog-close]="data.requestedPlayers" cdkFocusInitial>Post</button>
</body>

这是我的.ts文件

import { Component, Inject } from '@angular/core';
import {MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogClose, MatDialogConfig} from '@angular/material/dialog';

export interface DialogData {
  requestedPlayers: string;
  activity: string;
}

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent {
  title = 'val-app';


  requestedPlayers : string;
  activity : string;

  constructor(public dialog: MatDialog) {}

  openDialog(){
    const dialogConfig = new MatDialogConfig();

    let dialogRef = this.dialog.open(CreateTeamOptions, {
      height: '326px',
      width: '237px',
      data: {requestedPlayers: this.requestedPlayers, activity: this.activity}
    });

    dialogRef.afterClosed().subscribe(result =>{
      console.log('Dialog result is: '+ result.activity);
      this.requestedPlayers = result;
      this.activity = result;
    });
  }
}

@Component({
  selector: 'create-team-options',
  templateUrl: 'create-team-options.html',
  styleUrls: ['./create-team-options.scss']
})

export class CreateTeamOptions {


  constructor(
    public dialogRef: MatDialogRef<CreateTeamOptions>,
    @Inject(MAT_DIALOG_DATA) public data: DialogData) {}

  onNoClick(): void {
    this.dialogRef.close();
  }
}

在打开的对话框中,应保存设置了html文件的两个变量,但由于某些原因,它们没有保存。

如果您的小伙子可以提供帮助,将不胜感激!!谢谢

编辑:只是尝试切换它首先为html上的发布按钮设置了哪个按钮,并且将第一个按钮设置为两个按钮,但不确定如何将它们设置为不同。

angular angular-material
2个回答
2
投票

更改对话框组件中的button以返回整个data,它应该可以工作。像这样的东西:

<button mat-raised-button [mat-dialog-close]="data" cdkFocusInitial>Post</button>

完成后,您的result对象将同时具有两个值。


0
投票

在关闭订阅后的对话框中,应将result.activity放在this.activity中,将result.requestedPlayers放在this.requestedPlayers变量中。

© www.soinside.com 2019 - 2024. All rights reserved.