【问题标题】:Angular 2 Autocomplete to fetch value from selected optionAngular 2 Autocomplete 从选定选项中获取值
【发布时间】:2018-06-18 10:18:36
【问题描述】:

在角度材料中,自动完成功能 mat-option 将在“值”字段和文本中具有相同的条目。

<mat-form-field fxFlex="50">
   <input type="text" placeholder="{{label.addUser.formLabels.role}}"   matInput [matAutocomplete]="role"  formControlName="roleId">
   <mat-autocomplete  #role="matAutocomplete" autoActiveFirstOption>
     <mat-option *ngFor="let option of roleListFilter | async" value="{{option.roleId}}" >
     <span>{{option.roleName}}</span>
    </mat-option>
   </mat-autocomplete>
</mat-form-field>

我得到如下问题所示的输出..

How can I get selected item value in Angular 2 Material Autocomplete

我想在文本框中显示选定的字符串,同时在 value 字段中设置 roleId.. 这可以实现吗?

【问题讨论】:

    标签: angular5 angular-material-5


    【解决方案1】:

    试试下面的代码:

     <mat-form-field>
        <input matInput placeholder="State" aria-label="State" 
          [matAutocomplete]="auto" [formControl]="your_ctrl">
        <mat-autocomplete #auto="matAutocomplete">
           <mat-option (click)="getSelectedElementId(item.id)" *ngFor="let item of your_list | async" 
              [value]="item.name">
              <span>{{ item.name }}</span> |
           </mat-option>
        </mat-autocomplete>
    </mat-form-field>
    

    在 .ts 文件中:

    getSelectedElementId(id){
        console.log(id)
    }
    

    【讨论】:

    • 我正在使用的功能不是 它的 如果我们添加这个 [value]="option.value" ,选择时这个值将显示在文本框中而不是“option.name”
    • 好的,但是根据官方文档,上面的代码是有效的
    • 你能生产拔毛器吗?
    • 感谢您的快速回复,但我的问题是使用 [value] = "item.id" 而不是 [value]="item.name" .. 以及我们在 value 字段中输入的任何内容将显示在文本框中.. 那么如何获取 select 上每个选项的 id..
    猜你喜欢
    • 2017-12-30
    • 1970-01-01
    • 2017-06-24
    • 2016-04-29
    • 1970-01-01
    • 2021-06-15
    • 2020-03-23
    • 1970-01-01
    • 2018-03-08
    相关资源
    最近更新 更多