Angular2使用ngValue选择初始对象

时间:2016-06-09 14:00:23

标签: angular

我正在尝试在填充选择时设置初始值,数据来自休息并加载到组件中。

后未设置/更新初始值

获取列表以填充选择:

...
ngOnInit():any {

this.crudService.get(`/api/countries`).subscribe(data => {this.countries = data;});
...

获取模型对象女巫有一个国家:

...
this.crudService.get('/api/unions/default').subscribe(data => {
 this.union = data;
...

HTML:

...
<div class="col-md-2">
              <select *ngIf="union.country" [(ngModel)]="union.country" class="form-control">
                <option *ngFor="let c of countries" [ngValue]="c">{{c.code}}</option>
              </select>
            </div>

...

一切正常,我可以选择一个国家,并在模型中正确更新,但初始值未选中但存在于模型中... 有任何建议或者这是一个错误吗?

谢谢!

2 个答案:

答案 0 :(得分:4)

如果将默认值分配给union.country并且它是一个对象(与原始值相对),则它必须是同一个实例,而不仅仅是具有相同内容的对象。

答案 1 :(得分:0)

You can use the tag [compareWith] inside your select area in HTML and

  compareByID(first: any, second: any) {
    return first && second && first.ID == second.ID;
  }

inside of you component.ts.

When i used ngValue to select the value, it's hasn't setting the default value on init.