【问题标题】:How to select multitple value of object when click on button in Angular selection option dropdown menu单击角度选择选项下拉菜单中的按钮时如何选择对象的多个值
【发布时间】:2020-11-04 11:34:52
【问题描述】:

我将 JSON 结果放在选择下拉菜单的选项列表中

[
{
    "id": "1596700684533_",
    "name": "Usman Abbas Ghulam Abbas",
    "fcm": "344"
},
{
    "id": "1596700972722_",
    "name": "Muhammad Ali",
    "fcm": "0"
},
{
    "id": "1596702420255_",
    "name": "Abdul Hannan Abdul Mannan",
    "fcm": "234"
}
]
  • 点击按钮时如何选择完整的对象和对象的值,如 id 和 fcm

我的 component.htlm 代码是

<select (change)="Selected($event)">
              <option *ngFor="let group of groups" [value]="group.fcm">
                {{group.name}}
              </option>
            </select>

当前点击按钮我可以获得一个值 id 或 fcm

Selected(event: any){
//update the ui
this.selectedName = event.target.value;
//this.selectedId = event.targent.value.id
this.hide=false;



}


getVal(){
  this.button=this.selectedName;
  console.log("hre is selected values for option " + this.selectedName);
 

  }

【问题讨论】:

    标签: javascript html angular drop-down-menu option


    【解决方案1】:

    您可以简单地将选项的值设置为id。在您的 (change) 事件发射器处理程序中,找到具有该 ID 的项目

    见下方代码Link to stackblitz demo

    <select (change)="Selected($event)">
      <option *ngFor="let group of groups" [value]="group.id">
        {{group.name}}
      </option>
    </select>
    

    打字稿文件

      Selected($event) {
        const selectedObject = this.groups.find(({id}) => id === event.target['value'])
        this.selectedName = selectedObject.name
        this.selectedId = selectedObject.id
      }
    

    【讨论】:

      【解决方案2】:

      第一种方式(设置组而不是 group.fcm)

      <option *ngFor="let group of groups" [value]="group">
      

      第二种方式(获取 fcm / id 并在其上过滤现有记录)

      <option *ngFor="let group of groups" [value]="group.id">
      

      组件

       Selected(event: any){
        this.selectedObj= data.filter(item => item.id = event.target.value)
        this.hide=false;
      }
      

      我认为第二种方式可以让您更好地控制数据集和 ui 可见性。

      【讨论】:

      • 我已经尝试了第一种方式,通过放置
      • 你可以试试第二种方法。稍后发布相同的答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-27
      • 2016-08-19
      • 2021-05-13
      • 2011-02-10
      • 2018-04-01
      • 2013-08-18
      相关资源
      最近更新 更多