select で 初期表示を disabled だけど選択された状態にしたい時ってありますよね。
普通の HTML なら、 selected という Attribute(属性)をつけると選んでくれます。
ただ、 ngModel を使う場合、選択状態は、モデルの値により変わるので、 selected は効きません。
サンプルコード
<select [(ngModel)]="test">
    <option disabled="disabled" selected>選択してください</option>
    <option [value]="'test1'">ひとつめ</option>
    <option [value]="'test2'">ふたつめ</option>
</select>
上記のようなコードは、
こうなって
こうなります。
本当は、こう↓なってほしい!
解決方法
この現象の原因は、 ngModel により、 ngModel の状態の option を選択するためです。
なので、下記のようにしてあげれば動きます。(最初に初期化して undefined を入れている場合)
<select [(ngModel)]="test">
    <option disabled="disabled" [value]="undefined">選択してください</option>
    <option [value]="'test1'">ひとつめ</option>
    <option [value]="'test2'">ふたつめ</option>
</select>
簡単ですね。




