Angular - 选择占位符不显示

时间:2017-08-23 08:55:28

标签: html angular


有什么理由说这个简单的代码不会起作用吗?我试图在我的选择中添加一个占位符,但它只是显示为列表中的其他选项之一。

<div *ngFor="let d of formDatiRichiesta" class="form-row">
          <select *ngIf="d.type=='select'" 
                  class="form-control" 
                  name="{{d.name}}" 
                  [(ngModel)]="model[d.name]"
                  required>
            <option selected disabled>{{d.placeholder}}</option>
            <option *ngFor="let b of elencoBanche" value="{{b.id}}">{{b.denominazione}}</option>
          </select>
        </div>

我正在使用angular4。感谢。

- EDIT-- 我发现如果我删除[(ngModel)]="model[d.name]"一切正常。任何提示?

4 个答案:

答案 0 :(得分:1)

您必须将<option>的值设置为模型的值,因为<select>将使用模型的值作为默认选择。

如果模型在开头未定义,您可以这样做:

<option value="undefined">Please choose...</option>

答案 1 :(得分:0)

它是如何工作的。使用属性disabled,您无法选择它作为选项。

但您可以添加hidden属性以隐藏它:

<option value="" selected disabled hidden>{{d.placeholder}}</option>

答案 2 :(得分:0)

 <select formControlName="value"  class="form-control"
                    style=" height: 40px">
                      <option [ngValue]="null" selected disabled hidden>Select</option>
                      <option>Save</option>
                      <option>Download</option>

                    </select>

答案 3 :(得分:-1)

只需添加它即可使用。

var newStatus = (status, subStatus) => {
  if(status === 'CREATED' && 
         (subStatus === 'subStatus1' || 'subStatus2' || 'subStatus3')){
    return 'CONFIRMED';
  } else if(status === 'CANCELLED' && 
         (subStatus === 'subStatus4' || 'subStatus5' || 'subStatus6')){
    return 'REMOVED';
  } else if(status === 'REVIEW' && 
        (subStatus === 'subStatus7' || 'subStatus8' || 'subStatus9')){
    return 'CHECKED';
  }
}

<div>newStatus('CREATED', 'subStatus2')</div>

<option value="" disabled>Select Category</option>