Angular" PUT"编辑选择多个

时间:2018-03-17 12:24:57

标签: angular

我正在尝试编辑用户,我已经在我的表中恢复了用户但是,我的问题是如何在我的选择多个表中显示所选的元素

 getUserDetail(iduser : number){
    this.GetGroups();
    this.serviceuser.UserDetail(iduser).then((u : User)=>{
      this.users = u;
      const form = this.FormUserUpdate.setValue({
      username : this.users.username,
      email : this.users.email,
      idgroups : this.users.groups,
      })
      console.log(this.users);        
    })

  }

这是我在表单中检索用户的代码,但是如何才能将标记的组取出?

  GetGroups() {  
    this.servicegroup.getGroup().then(res => this.groups = res);  
  } 

在这里,我将服务称为返回群组

<div >
              <label for="idgroups">Grupos</label> 
              <select multiple formControlName="idgroups" class="form-control">  
                <option *ngFor="let group of groups" value={{group.id}}>  
                        {{group.name}}  
                </option>  
            </select>  
            </div>

这是我的HTML,因为他们会意识到它只显示所有组,但我该如何标记用户拥有的组?

enter image description here

我想要的是我留下的标记除了其他现有组

之外还有这些用户的组

1 个答案:

答案 0 :(得分:0)

Code example

您将 idgroups 设置为对象数组。它应该是数字的数组,因为作为选项的值,您使用 group.id

  <option *ngFor="let group of groups" value={{group.id}}>  
                        {{group.name}}  
  </option> 

在这里

 getUserDetail(iduser : number){
    this.GetGroups();
    this.serviceuser.UserDetail(iduser).then((u : User)=>{
     ...
      idgroups : this.users.groups,
      })
      console.log(this.users);        
    })

  }

替换为:

 getUserDetail(iduser : number){
        this.GetGroups();
        this.serviceuser.UserDetail(iduser).then((u : User)=>{
       ...
          idgroups : this.users.groups.map(gr => gr.id), // =>[1,2...5]
          })
          console.log(this.users);        
        })

      }