为 mat-select 预选多个值 - Angular 6

2023-12-28

我正在尝试在垫选择中预选多个选项。到目前为止我还无法实现这一目标。

这是 HTML 文件:

<mat-dialog-content [formGroup]="form">
   <mat-form-field>
     <mat-select placeholder="participants" formControlName="participants"  multiple>
         <mat-option *ngFor="let participant of participants" [value]="participant">{{participant}}</mat-option>
     </mat-select>
    </mat-form-field>
</mat-dialog-content>

这是控制器:

export class EventViewModalComponent implements OnInit {
  form: FormGroup;
  calendarEvent: CalendarEvent;
  participants = [];

  constructor(private fb: FormBuilder,
    private participantService: ParticipantService,
    @Inject(MAT_DIALOG_DATA) event: CalendarEvent) 
    { 
    this.form = fb.group({
      title: [event.title, Validators.required],
      location: [event.meta.location, Validators.required],
      description: [event.meta.description, Validators.required],
      start: [event.start, Validators.required],
      end: [event.end, Validators.required],
      participants: [this.participants, Validators.required]
    });
    this.calendarEvent = event;
  }

  ngOnInit() {
    this.participantService.getAll().subscribe(data =>{
      for(let i = 0; i < data['length']; i++){
        this.participants.push(data[i]['name']);
      }
    })
  }
}

This currently selects all the values per default. Here's a screenshot of how it looks currently: enter image description here

我想要实现的目标是只预先选择辛迪和吉姆,如下所示:

我怎样才能实现这个目标?我已经阅读了几个SO问题但没有成功。任何帮助表示赞赏


对于 Angular6+,当您同时拥有 formControl 和 [(ngModel)] 时,会出现弃用警告

看来您在同一表单字段上使用 ngModel 表单控件。 支持使用 ngModel 输入属性和 ngModelChange 事件 反应式表单指令已在 Angular v6 中弃用并将被删除 在 Angular v7 中。

选项 1 使用 [ngModel] 而不使用 FormControl

正如第一个答案所示,像这样拆分 [ngModel] 和 (ngModelChange) 。

<mat-select 
  [(ngModel)]="selectedFoods" 
  (ngModelChange)="selectedFoods" name="selectedFoods" 
  placeholder="Favorite food" multiple>
  <mat-option *ngFor="let food of allfoods" [value]="food.value">
      {{food.viewValue}}
  </mat-option>
</mat-select>

对于 ts 来说。

  allfoods: Food[] = [
    {value: 'steak-0', viewValue: 'Steak'},
    {value: 'pizza-1', viewValue: 'Pizza'},
    {value: 'tacos-2', viewValue: 'Tacos'},
    {value: 'pasta-3', viewValue: 'Pasta'}
  ];
  selectedFoods = [
     'steak-0', 'pasta-3'
  ];

选项 2 使用 [formControl] 而不使用 [ngModel]

<mat-form-field>
    <mat-select [formControl]="foodForm" placeholder="Favorite food" multiple>
        <mat-option *ngFor="let food of allfoods" [value]="food.value">
            {{food.viewValue}}
        </mat-option>
    </mat-select>
</mat-form-field>

在这种情况下,选择是在 FormControl 的构造函数中初始化的。

 allfoods: Food[] = [
    {value: 'steak-0', viewValue: 'Steak'},
    {value: 'pizza-1', viewValue: 'Pizza'},
    {value: 'tacos-2', viewValue: 'Tacos'},
    {value: 'pasta-3', viewValue: 'Pasta'}
    ];
 myselectedFoods = ['pasta-3', 'steak-0'];
 foodForm: FormControl = new FormControl(this.myselectedFoods);

https://stackblitz.com/edit/angular-mat-select-multi-with-formcontrol https://stackblitz.com/edit/angular-mat-select-multi-with-formcontrol

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为 mat-select 预选多个值 - Angular 6 的相关文章

随机推荐

  • IOError: [Errno 2] 没有这样的文件或目录: 'README.md'

    当我尝试使用 pip 安装omnature 时 收到以下错误 IOError Errno 2 No such file or directory README md 我基本上是在尝试连接到 Adob e Analytics API 有人能帮
  • Ruby:是否可以设置通过字符串命名的实例变量的值?

    不确定这种模式叫什么 但场景如下 class Some this class has instance variables called thing 1 thing 2 etc end 有没有什么方法可以设置实例变量的值 其中实例变量名称是
  • 是否可以在 iOS 上发送 SILENT LOCAL 通知

    My app wakes up从暂停模式开始静音遥控器来自服务器的通知 正是我想要的 该服务器发送带有 的推送通知 内容可用 1 它完成了这项工作 现在我想在没有服务器帮助的情况下执行此操作 所以我想发送本地无声通知 来自应用程序 将来的某
  • 将值从 MSBuild 任务传递到 TFS 构建工作流程

    有许多示例和方法可以将属性值从 TFS 2010 构建工作流传递到 MSBuild 但我需要执行相反的操作 基本上 在构建盒上编写了自定义目标文件 以对盒上运行的所有构建进行一些处理 这些目标文件中包含自定义任务 其中一些任务公开返回值 或
  • 尝试在 rake 任务中启动 redis 和 resque 调度程序

    我想从 rake 任务启动 redis 和 redis scheduler 所以我正在执行以下操作 namespace raketask do task start do system QUEUE rake resque work syst
  • 在 Unix 中的邮件中附加 2 个以上文件

    我有很多文件需要附加并通过电子邮件发送 我正在运行脚本来执行此操作 你能帮我写代码吗 您可以使用选项 a of mailx多次 例如 mailx s Few files attached a file1 txt a file2 txt em
  • IE 中的 window.location 问题

    我有这个简单的代码 可以在每个浏览器中正常工作 但不能在 IE 每个版本 中工作 window setTimeout window location http www domain modules yobilab copyright cla
  • 在 iOS 应用程序中使用现有的系统声音 [swift|

    是否可以在我自己的应用程序中使用现有的Apple系统声音 我想用 Swift 编写一个示例应用程序 执行以下步骤 读取 获取设备上所有可用系统声音的列表 我认为它们位于 System Library Audio UISounds 在屏幕上显
  • 宏定义冲突

    我遇到了这个问题 这与宏函数无关 只是简单的字符串值宏替换 我有两个头文件 test1 h define TEST 123 test2 h define TEST 456 现在我有一个程序包含这两个标头 但我希望我的实际 TEST 为 12
  • 将雪(和降雪)与 AWS 结合使用,在 R 中进行并行处理

    相对于我之前的类似的问题 https stackoverflow com questions 7241244 using aws for parallel processing with r 我尝试在AWS上使用snow snowfall进
  • .NET 4.5 中的序列化中断

    我们遇到了一个仅在 NET 4 5 中发生的序列化问题 相同的代码在 NET 4 中工作正常 我们正在尝试使用一些字段序列化继承类型 基类和继承类都标记为可序列化属性 我们在 Web 服务的客户端收到一个异常 说有一个方法访问异常在服务器端
  • 用于模糊字符串比较的好 Python 模块? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动
  • Wagtail:如何将模型实例传递给小部件并在模板中访问它

    我有一个基于 Wagtails 的模型Page模型 我正在将自定义小部件分配给模型字段之一 渲染管理视图时是否可以在小部件 HTML 模板中访问模型实例 我需要管理视图中的小部件来知道哪个 IDSimplePage该小部件所属 即获取值 p
  • OSX Mavericks - 不再安装 BIND...如何使本地 DNS 服务器正常工作?

    我一直在 OSX 上使用 BIND 为我的本地开发机器提供本地 DNS 解析器 特别是为了方便虚拟机访问我的本地开发环境 愚蠢的是 我决定连夜升级到 OSX Mavericks 但似乎不再安装 BIND 即使添加了命令行开发人员工具 有人建
  • clang 尝试捕获失败

    这是我所说的代码部分 try std cerr lt lt first try lt lt std endl po store po parse config file ifs configFileOptions false vm catc
  • 从两个向量创建新的 ID(双向)

    我在一个由因子组成的数据框中有两个向量 每个向量中有约 10000 个唯一因子 这是我的数据的简化示例 tg lt data frame A sample letters 1 5 30 replace TRUE B sample lette
  • Pandas 数据框 to_csv - 分成多个输出文件

    将非常大的数据帧 50GB 分割成多个输出 水平 的最佳 最简单方法是什么 我想过做类似的事情 stepsize int 1e8 for id i in enumerate range 0 df size stepsize start i
  • 如何在 JasperReports Server 4.0.0 中配置邮件服务器设置

    我在用着JasperReports服务器4 0 0我想如何配置邮件服务器设置以通过报告计划邮寄报告 我怎样才能做到这一点 有人知道这个吗 您应该编辑
  • 由于“完美分离错误”,无法运行逻辑回归

    我是 Python 数据分析的初学者 并且在完成这项特定任务时遇到了麻烦 我进行了广泛的搜索 但无法找出问题所在 我导入了一个文件并将其设置为数据框 清理了文件中的数据 然而 当我尝试将我的模型拟合到数据时 我得到了 检测到完美分离 结果不
  • 为 mat-select 预选多个值 - Angular 6

    我正在尝试在垫选择中预选多个选项 到目前为止我还无法实现这一目标 这是 HTML 文件