2013-08-06 9 views
5

現在、私はangularjsのng-optionsのデフォルト値を設定することで苦労しています。 誰かが私を助けることができますか?AngularJSとng-options from resourceデフォルト値

リソースからオプションを取得します。

<select id="customer_country" ng-model="customer.country" ng-options="country.name for country in countries" style="width:230px;"> 
</select> 

私の現在の回避策は次のようにデフォルト値を設定することです:

$scope.countries = Country.query(function() { 
    $scope.customer.country = $scope.countries[0]; 
}); 

しかし、私はそれを行うための最善の方法を考えていません。 インターネットを検索しましたが、良い答えが見つかりませんでした。 どのようにデフォルト値を割り当てますか?

現在、私はこれにはnull値がないことが必要です。また、null値を持たない場合もあり、モデルを更新するためにモデル内の値を使用しないでください。

答えて

6

私は同じ問題を自分で遭遇しました。私はそれが最善の方法だと信じています。それはまた、彼らのdocumentation for the ng-options directiveで行われている方法です。ここで

0
$scope.customer = {country: $scope.countries[0]}; 

または

$scope.customer.country = $scope.countries[0]; 
1

は、私が使ってきた私のコードの例です。

HTML

<select ng-model="agent.id" ng-options="user.id as user.username for user in users"></select> 

コントローラ

$scope.agent = { 
    id: 2, 
    address:4 
}; 

これは、各ドロップダウン要素のuser.idにマッピングするためにエージェントIDを使用して、2ドロップダウン値を設定します。それがまったく役立つかどうかは分かりません。

0

オプションの1つにモデルに相当する値がある場合、angularはそれをデフォルトの選択値として割り当てます。

コントローラー:

$scope.statusArr = [ 
    {value: 'active', display: 'Active'}, 
    {value: 'expired', display: 'Expired'} 
] 

$scope.currentPlant = CurrentPlants.get id : $routeParams.id 

HTML:ここ

は、例えばCoffeeScriptのコード(currentPlant.statusの値はここ'expired'であることに注意)である。この例では

<select class="form-control" ng-model="currentPlant.status" ng-options="status.value as status.display for status in statusArr"> 
     </select> 

、角度割り当て'expired'デフォルトで選択されたオプションとして使用します。

関連する問題