如何对对象使用角度选择

时间:2018-08-08 10:39:52

标签: angular select

我在我的组件中从rest-api获得了角色,

pip install

然后我正尝试在模板中使用它,如下所示:

this.userService.getRoles().subscribe(data => this.roles = data);

但是不起作用,输出为{{roles | json}},所以对他们来说一切都很好,问题是选择不起作用。

<select name="role" [(ngModel)]="user.role">
    <option *ngFor="let role of roles" [ngValue]="role">{{role.name}}</option>
</select>

1 个答案:

答案 0 :(得分:2)

使用[compareWith]Stackblitz

@Component({
  selector: 'hello',
  template: `
    <select [(ngModel)]="selected" [compareWith]="compare">
      <option *ngFor="let role of roles" [ngValue]="role">{{ role.desc }}</option>
    </select><br>
    <p>Selected role : {{ selected | json }}</p>
  `,
  styles: [`h1 { font-family: Lato; }`]
})
export class HelloComponent  {

  roles = [
    {id: 1, desc: 'Admin' },
    {id: 2, desc: 'User' },
  ];

  selected: any;

  compare(obj1, obj2) {
    return obj1 && obj2 && obj1.id === obj2.id;
  }
}