用Typescript从动态字符串数组中获取值

在angular material form中,我有一个mat-option的字段,其中包含了一系列的选项(即a, b, c, d, e)。当用户选择或不选择一个特定的选项(即c)时,我需要做一些操作。但是,即使我选择了一个选项’c’而没有选择任何其他选项,我也得到了未定义的错误。

我可以理解为这是由于我使用的索引值[2]造成的。我不知道如何识别用户是否选择了选项’C’,因为它的索引值可能会根据用户的选择动态地增加或减少。

响应数组可能是这样的。

value = {'d','c'} or value = {'c','b','a'} or value = {}

if(value[2] === 'c') {
   console.log('c');
 } 

谁能帮我写一段typescript代码?

解决方案:

也许你的代码中缺少了一个东西。既然你告诉我们你使用了 mat-option我试图用它来创建示例代码。

组件.html

<h4>mat select</h4>
<mat-form-field>
  <mat-label>Choose option</mat-label>
  <mat-select [formControl]="optionControl" required (valueChange)="onChange($event)">
    <mat-option>--</mat-option>
    <mat-option *ngFor="let option of options" [value]="option">
      {{option}}
    </mat-option>
  </mat-select>  
</mat-form-field>

<div>
  <p>Selected value</p>
  {{ optionControl.value }}
</div>

组件.ts

import {Component} from '@angular/core';
import {FormControl, Validators} from '@angular/forms';

@Component({
  selector: 'app-example',
  templateUrl: 'app-example.html',
  styleUrls: ['app-example.css'],
})
export class AppExampleComponent {
  optionControl = new FormControl('', Validators.required);  
  options = ['a', 'b', 'c']; // this is static but should be dynamic for your case

  onChange(value: string) { // value will be selected option
    if (value === 'c') {
      console.log('c');
    }
  }
}

请看一下在 StackBlitz

给TA打赏
共{{data.count}}人
人已打赏
未分类

如何根据另一个数组中的值来更新数组中的值?

2022-9-23 11:12:03

未分类

Javascript函数调用顺序不正确,需要异步调用。

2022-9-23 11:12:11

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索