2017-07-13 12 views
3

ng-initにリンクするオブジェクトの配列をループするng-optionsでselectを作成しています。しかし、問題は、正確な変数をng-changeまで渡す必要があるということです。ng-options ng-initにリンクするオブジェクトの配列

右のコードはng-initとなり、読み込み時に正しいオプションを選択します。オプションが選択されている場合しかし、それは完全に、ng-optionsの初めにaddressng-change作品を.idを追加することによりng-change

<select name="baddress" ng-init="autoship.baddress_id = address.id || addresses[0]" 
ng-model="autoship.baddress_id" 
ng-change="setter('baddress', autoship, address.id)" 
ng-options="address as address.address + ' ' + address.address2 + ' ' + address.city + ', ' + address.state + ' ' + address.zipcode for address in addresses" ></select> 

にIDを渡すことはありませんが、それは負荷を下に空の選択ドロップを残し。

<select name="baddress" 
ng-init="autoship.baddress_id = address.id || addresses[0]" 
ng-model="autoship.baddress_id" 
ng-change="setter('baddress', autoship, address.id)" 
ng-options="address.id as address.address + ' ' + address.address2 + ' ' + address.city + ', ' + address.state + ' ' + address.zipcode for address in addresses" ></select> 
+0

:IDのみを保つために

ng-init="autoship.baddress_id = address.id || addresses[0]" 

、私はあなたにそれを変更すべきだと思います* "ng-initにリンクする" * ...これは 'ng-init'のためのものではありません(ドキュメントを参照)。コントローラを使ってこのようなビジネスロジックを処理してください – charlietfl

答えて

0

住所が[0]この行の全体のアドレスオブジェクトになります。

ng-init="autoship.baddress_id = address.id || addresses[0].id" 
+0

これはうまくいきました!どうもありがとうございました。 – lettman1

+0

これによりフォールバックが行われます。それは素晴らしいですが、今は最初の部分がまったく働かなかったことを認識しています。私は@charlietflコメントが正しいと思います。 – lettman1

+0

@ lettman1この変数をコントローラで初期化するだけです。 '$ scope.autoship.baddress_id = whatever;' – Mistalis

関連する問題