2017-02-26 8 views
0

ng-repeatでui-choicesを追加していますが、コントローラで別々にui-selectから値を取得する方法がわかりません。私は$ HTTP要求を送信するためのパラメータとして使用するために、コントローラで選択した項目の値を取得したいと思います。ng-repeatで選択された値を取得する方法

<div ng-repeat="repeat in repeats"> 
    <p>Selected: {{pattern.selected.name}}</p> 
    <ui-select ng-model="repeat.id"> 
<ui-select-match placeholder="Enter an pattern...">{{$select.selected.name}}</ui-select-match> 
<ui-select-choices repeat="pattern in data_pattern_newspapers track by $index"> 
    <div ng-bind-html="pattern.name | highlight: $select.search"></div> 
</ui-select-choices> 

私は私のコントローラで、以下のように代をやって欲しい:

alert($scope.repeat.id.selected) 

がどのように私は、各UI選択の私のコントローラ内のモデルにアクセスすることができますか?

マイ plnkr

いくつかの体は、私を助けてください。ありがとう!あなたのHTML内

+0

あなた' NG-model'をドロップダウンで選択したものは何でもの値に初期値だそれから 'id'値を変更しています。あなたが望むものかもしれないし、そうでないかもしれない。あなたの選択がオブジェクトをバインドしているので、おそらくそうではありません:http://plnkr.co/edit/sOrXVNiUQaj5HO3TKJyH?p=preview – Claies

+0

他人が選択肢を提案しやすくするために、あなたが何であるかを説明したいかもしれませんその値を使用する計画。 – Claies

+0

@Claies $ http要求を送信するためのパラメータとして使用するために、コントローラで選択した項目の値を取得したいとします。では、この選択項目を取得するためにコントローラで何をすべきですか? –

答えて

1

ui-selectのためのユニークなモデルを作成するためにngRepeatの$index性質を利用し、ngChange関数に$indexを渡す:あなたのコントローラで

<ui-select ng-model="selections[$index]" ng-change="selectionChanged($index)"> 

は、選択された値を保持する配列を初期化、およびこの配列を参照するために$indexを受ける上記の機能を追加します。彼らはそれらを作るよう今

$scope.selections = []; 

$scope.selectionChanged = function(idx) { 
    console.log(idx, $scope.selections[idx]); 
}; 

$scope.selectionsは彼らの選択の配列です。

デモ:repeat.id` `上http://plnkr.co/edit/NSK3UmelATopV0Juw8BV?p=preview

+0

'ngChange'関数は必要ではないことに注意してください。いつでも' $ scope.selections'を参照することができますが、選択が変更されたときに何らかのアクションをとると思われます。しかし、キーは$ index: 'ng-model =" selections [$ index] "' –

+0

を使用することです。完璧に働いた。ありがとう! @K Scandrett –

関連する問題