2017-01-18 2 views
1

実際の問題を再現しようとしています。この例は奇妙に見えるかもしれませんが、 私を助けることができれば感謝します。は、ng-repeat(ANGULAR.JS)で生成されたドロップダウンに値を設定します。

ボタンをクリックすると、3つの動的なドロップダウンが生成されます($ scope.aAnimals配列を含む動物のリストとともに、$ scope.dropdownという変数が与えられ、現在3つの要素があります)しかし将来的には "n"要素となりうる)。

これ以降、最初のドロップダウンには最初の動物が、2番目のドロップダウンには2番目に、3番目のドロップダウンにはそれぞれ異なる値が設定されます。 私は多くのことを試みましたが、私はそれを達成することができませんでした。

<div ng-repeat='item in dropdown'> 
    <select class="form-control animal" ng-model='MyAnimals' id='animal{{$index}}' name='animal{{$index}}' 
    ng-options="opt as opt.animal for opt in aAnimals track by opt.animal"> 
      <option style="display:none" value="">Select an animal</option> 
    </select> 
</div> 
<button ng-click='add()' >generate</button> 


$scope.obj = {} 
$scope.aAnimals= 
[ 
{ "animal": "cat"}, //first dropdown 
{ "animal": "dog"}, //second dropdown 
{ "animal": "parrot"} //third dropdown 
] 


$scope.add=function(){ 
$scope.dropdown=[]; 
for(var i in $scope.aAnimals){ 
    $scope.dropdown.push({ "animal": $scope.aAnimals[i].animal }) 
    //$('.animal')[i].value=$scope.aAnimals[i].animal; 
    } 
} 

これは結果..

enter image description here

{ "animal": "cat"}, //first dropdown 
{ "animal": "dog"}, //second dropdown 
{ "animal": "parrot"} //third dropdown 

でなければならないすべての動物は、すべてのドロップダウンに表示され続けます。重要なのは、画像の結果を得ることです。

http://plnkr.co/edit/JF1PBblo6VGKdeWvoqTz?p=preview

+1

ここでは正確な要件は何ですか - 最初のドロップダウンで選択された動物は2番目と3番目の部分にならないようにするか、同じ動物を選択して検証メッセージを表示するべきですか? –

+0

@SumitDeshpande aこれが必要ですhttp://i.imgur.com/gmiGamn.jpg – yavg

+0

これは、最初のドロップダウン選択で、次の使用可能な値で他の2つを設定することを意味しますか? –

答えて

0

あなたは使用することができます

<div ng-repeat='item in dropdown'> 
<select class="form-control animal" ng-model='item' id='animal{{$index}}' name='animal{{$index}}' ng-options="opt as opt.animal for opt in aAnimals" > 
     <option value="">Select an animal</option> 
</select> 

+0

ありがとう!それは動作しません.. – yavg

+0

OK。ちょうど脇に、あなたはあなたのプランナーでng-app = "app"を忘れてしまった – dev8080

+0

これは私のために働いた。plsはあなたの側にどのように表示されているか教えてください? – dev8080

0

あなたは次のように使用することができます - これは役立つ

<div ng-repeat="item in dropdown"> 
    <select ng-model="item.animal" ng-options="opt.animal as opt.animal for opt in aAnimals"> 
     <option value="">Select an animal</option> 
    </select> 
</div> 
+0

私は "opt.animalでaAnimalsトラックを選ぶためにopt.animalとして選んでください" – yavg

0

希望:

<div ng-repeat='item in aAnimals'> 
    <select ng-model="item.animal" ng-options="opt.animal as opt.animal for opt in dropdownw"></select> 
</div> 
関連する問題