0

オブジェクト内の配列を ng-options に入れる際に問題があります。

別の配列内に次のオブジェクトの配列があります。

$scope.array = [{name: "jan", ar=["car", "bus", "bike"]}, {name: "tom", ar=["milk", "water", "bike", "walking"]}, {name: "kim", ar=["star", "car"]}]

オプション jan、tom、kim で選択したいと思います。しかし、それは問題ではありません:

<select ng-options="o.name for o in array" ng-model="choosen.nOption">

ただし、オプションを選択すると、新しい選択は、その名前から配列 ar をオプションとして開始する必要があります。

<select ng-if="choosen.nOption!=undefined" ng-options="o.ar for o in array.ar | filter: {name: choosen.nOption}">

内部配列の値を取得する方法を教えてください。

https://jsfiddle.net/brokenhip/phxyap8a/でフィドラーを見つけることができます

解決策: https://jsfiddle.net/brokenhip/phxyap8a/2/

<select ng-options="o.name for o in arrayA" ng-model="choosen.nOption"></select>

         <select  ng-if="choosen.nOption!=undefined" ng-options="o for o in choosen.nOption.ar" ng-model="choosen.nOption2"> </select>
4

1 に答える 1

0

だから私は簡単な方法を見つけました $watch を使用して、最初の選択がいつ変更されるかを確認します。

コントローラーにこれを追加します:

    $scope.$watch('choosen.nOption',function(newVal){
          $scope.choosenOption = newVal['ar'];
          console.log($scope.choosenOption); // check in your console
      });  

HTML では、フィルターは必要ありません。

  <select  ng-if="choosen.nOption!=undefined" ng-options="opt for opt in choosenOption" ng-model="choosen.nOption2"> </select>
于 2015-06-09T07:35:56.387 に答える