Forms 如果Angular2中满足条件,则在下拉列表中设置选定属性

Forms 如果Angular2中满足条件,则在下拉列表中设置选定属性,forms,drop-down-menu,angular,ng-style,Forms,Drop Down Menu,Angular,Ng Style,我的项目中有两个对象:一个公司和一个用户。我有一个表单,用户可以在其中更新他的个人资料。他可以更新的事情之一是国家。现在,我使用下拉列表来显示国家 我想在选项中设置所选的属性,其中国家的名称等于用户的实际国家。(country.name==user.country) 这是我尝试过的,但似乎不起作用 <select> <option *ngFor="#c of countries" [ngStyle]="setStyles()" [ngValue]="c">{{c.

我的项目中有两个对象:一个
公司
和一个
用户
。我有一个表单,用户可以在其中更新他的个人资料。他可以更新的事情之一是国家。现在,我使用下拉列表来显示国家

我想在选项中设置所选的
属性,其中
国家的
名称
等于
用户的实际
国家
。(
country.name==user.country

这是我尝试过的,但似乎不起作用

<select>
    <option *ngFor="#c of countries" [ngStyle]="setStyles()" [ngValue]="c">{{c.name}}</option>          
</select>

setStyles(){
    let styles;
    if (this.companies[i].name == this.user.country ) {
        styles = {
            'selected'
        } 
    return styles;
}

{{c.name}}
设置样式(){
让风格;
if(this.companys[i].name==this.user.country){
样式={
“选定”
} 
返回样式;
}

我会尝试以下方法:

<select>
  <option *ngFor="#c of countries"
       [attr.selected]="c.name == user.country ? true : null" 
       [ngValue]="c">
    {{c.name}}
  </option>
</select>

{{c.name}}

我认为这是您需要的属性,而不是样式。

谢谢,它可以工作,但不是对每个用户都有效,但我认为我需要调整一些代码。