Angular 角度2基于传入参数从选择列表中选择选项

Angular 角度2基于传入参数从选择列表中选择选项,angular,2-way-object-databinding,Angular,2 Way Object Databinding,嗨,希望有人能告诉我我错过了什么 在我的plunker演示中,我有一个编辑按钮,单击该按钮,现在静态id为2。(这模拟了一个id参数进入我的真实项目中的该组件) 我试图做的是获取传入的id,找到用户并在dropdownlist中选择它们,这样它就会填充我的其他字段,就像当前从选择列表中选择用户一样 在我的代码中,我可以看到我有id,并且可以找到匹配的全名。我还可以填充id字段,但不能将“选择列表选定值”设置为全名 Html当前显示带有双向数据绑定的dropdownlist和id字段 <

嗨,希望有人能告诉我我错过了什么

在我的plunker演示中,我有一个编辑按钮,单击该按钮,现在静态id为2。(这模拟了一个id参数进入我的真实项目中的该组件)

我试图做的是获取传入的id,找到用户并在dropdownlist中选择它们,这样它就会填充我的其他字段,就像当前从选择列表中选择用户一样

在我的代码中,我可以看到我有id,并且可以找到匹配的全名。我还可以填充id字段,但不能将“选择列表选定值”设置为全名

Html当前显示带有双向数据绑定的dropdownlist和id字段

  <select [(ngModel)]="tradesman">
<option>Select</option>
<option [ngValue]="v" *ngFor='let v of _tradesmen'>{{ v.fullname}}</option>

挑选
{{v.fullname}

谢谢
安迪

应该是
[value]=“v”
而不是
[ngValue]=“v”

从你的plunker代码来看,你的类没有实现OnInit

从我理解的问题来看,你有一个id,你必须在选择框中选择这个id的值。我希望它在
页面加载上,这就是我使用
ngOnInit()
的原因

您不必更改html文件中的任何内容

  <select [(ngModel)]="tradesman">
    <option>Select</option>
    <option [ngValue]="v" *ngFor='let v of _tradesmen'>{{ v.firstname }} {{ v.lastname }}</option>
  </select>

挑选
{{v.firstname}{{v.lastname}}

Hi Tobie and Ajmal如果我从ngValue切换到value,那么当我从下拉列表中选择一个用户时,其他字段不会自动填充双向绑定。@stephenad您还可以创建一个
(单击)
(更改)
函数,为您手动更新
ngModel
选择{{v.fullname}
Plunker中的编辑按钮在哪里,顺便说一句,Plunker在初始化时抛出了一个错误:)@stephenad,希望这是您所需要的。嗨,Veena,再次感谢您,这非常有效,我认为编辑html是错误的,因为它不断破坏我的双向绑定。
  <select [(ngModel)]="tradesman">
    <option>Select</option>
    <option [ngValue]="v" *ngFor='let v of _tradesmen'>{{ v.firstname }} {{ v.lastname }}</option>
  </select>