2016-05-20 40 views
0

私がセレクトオプションで初期値を設定したいです。ここに私のコードです:アンギュラ - JSONを選択し、オプションの初期値を設定

<select ng-init="blah" ng-options="key as value for (key , value) in cities "ng-model="selectedCity" ng-click="setCity()" class="form-control"></select> 

何か提案がありますか? (推奨ないで)マークアップの中でそれを選択するための

+1

'selectedCity =「someValue'' – Satpal

+0

' NG-INIT = "selectedCity = initialVal.citiesは" '// initialValは、あなたが選択する値です。 –

+0

@Satpal それは、これは動作しますが、私は本当に 'NG-init'は避けるべきだと思う(と角ドキュメント – AFN

答えて

1

<select ng-init="selectedCity='firstCity'" 
    ng-options="key as value for (key , value) in cities" 
    ng-model="selectedCity"> 
</select> 

firstCityを使用しますが、デフォルトで選択させたいキーです。

コントローラの使用に

$scope.selectedCity='firstCity'; 

を初期化するために、これはあなたのオブジェクトである

$scope.cities = { 
    firstCity: "NY", 
    secondCity: "LA", 
    thirdCity: "OT" 
    }; 

WORKING DEMO

を言うことができますが、それがお役に立てば幸いです。お使いのコントローラで

+2

を働いていない[あまりにもあなたのコントローラ内の値を初期化するのではなく、その目的のためにそれを使用することをお勧め]( https://docs.angularjs.org/api/ng/directive/ngInit))。あなたのビューにロジックを置くことで、コードをもっと難しくすることができます。明らかに、この種のことは味の問題です! –

+1

はい@JoeClay。しかし、投稿者は**私がこれを投稿した理由を選択オプション**で初期値を設定したいと思っています。ありがとうBTW。私はあなたのポストは間違いなく質問に答えるので、私はそれを下に投票しなかった、あまりにも –

+0

うん私のポストを編集した - あなたの答えは、私が個人的にそれを行うだろうかない場合であっても、それは投稿者が知っている聞かせて良いことです私は3キーと値のペアを持っていると私は私がinitialValを初期化する方法、デフォルト値として最初の値を設定したい場合:) –

1

、あなたはちょうどあなたがそれがデフォルトしたい値にselectedCityをinitialilizeする必要があります。お使いのコントローラの宣言で

+0

コントローラのselectedCityを初期化しますが、まだ動作しません。 コントローラ: $ scope.selectedCity = 'NY'; HTML: AFN

0

$scope.selectedCity = 'cityName'; // any name you want to initialize with 
+0

'$ scope.cities'は配列ではありません。 –

+0

これは機能していません – AFN

関連する問題