当使用ngModel和name属性时,Angular2选择默认值不起作用

时间:2017-10-30 05:58:22

标签: javascript angular2-forms

<select id="role" name="role" class="form-control" [(ngModel)]="user.role" #role="ngModel" required>
    <option value="" >Select</option>
    <option value="leadAnalyst">Lead Analyst</option>
    <option value="analyst">Analyst</option>
    <option value="assistant">Assistant</option>
</select>

用户create.component.ts

ngOnInit() {
  this.user.role = 'Select';
}

我尝试使用上面的代码,但它无效。

3 个答案:

答案 0 :(得分:1)

您需要将用户定义为对象,然后为角色分配值

export class AppComponent {
  defaultStr = 'Select';
  user = { role: this.defaultStr };

  constructor() { console.clear(); }
  getvalue(){
    console.log(this.user.role);
  }
}

<强> WORKING DEMO

答案 1 :(得分:0)

将您的代码更改为:

ngOnInit() {
        this.user.role = '';
    }

答案 2 :(得分:0)

要选择默认值,您需要使用angular

的selected属性
 <select id="role" name="role" class="form-control"  #role="ngModel" required>
    <option value="" >Select</option>
    <option value="leadAnalyst" [selected]="'leadAnalyst' == user.role">Lead Analyst</option>
    <option value="analyst" [selected]="'Analyst' == user.role">Analyst</option>
    <option value="assistant" [selected]="'assistant' == user.role">Assistant</option>
</select>

“User.role”应该在ngOnInit()

中返回用户的角色