2016-03-25 7 views
0

からのng-optionsを作成したい親オブジェクトと子オブジェクトから要素を選択できます。 私のJSONは次のようになります。ng-optionsを表示する方法

{ 
"errors":[ 

], 
"headquarters":{ 
    "id":1, 
    "name":"headquarter name", 
    "departments":[ 
    { 
     "id":2, 
     "name":"department A name", 
     "divisions":[ 
      { 
       "id":6, 
       "name":"Division A name" 
      }, 
      { 
       "id":7, 
       "name":"Division B name" 
      }, 
      { 
       "id":8, 
       "name":"Division C name" 
      } 
     ] 
    }, 
    { 
     "id":3, 
     "name":"department B name", 
     "divisions":[ 
      { 
       "id":11, 
       "name":"Division E name" 
      }, 
      { 
       "id":12, 
       "name":"Division F name" 
      }, 
      { 
       "id":13, 
       "name":"Division G name" 
      } 
     ] 
    } 
    ] 
} 
} 

このJSONから部門ではなく本部は使用が分裂を選択するためのIDを選んで選択されている場合、私はその後、本社または部門を選択したいと。私はこのような何かをしようとしました:

 element.id as element.name for element in user.structure.headquarters && user.structure.headquarters.departments 

しかし、それは動作していません。

これは可能ですか?

他の方法がありますか?

JSONには常に1つの本社があります。

+0

ので、あなたがしたいの最初に部門を選び、その中の部門の1つを選んでください。 –

答えて

0

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

あなたのHTMLは次のようなものになりますあなたが選択した部門から部門最初の部門を選択してから取得するには、このような何かを行うことができます。

<select ng-model="selectedDept" 
     ng-options="dept.id as dept.name for dept in data.headquarters.departments" 
     ng-change="getDivisions()"></select> 


<select ng-if="selectedDept" 
     ng-model="selectedDivision" 
     ng-options="div.id as div.name for div in selectedDivisions"></select> 
+0

はい、それは私が欲しいものです。しかし、この最初の選択からは、部署だけでなく本部または部門を選ぶこともできます。 そして、もし私が部署を選ぶなら、私は部署を選びたいと思っています。 私はこれを最初に選択することができるかどうかを質問しています。部署+本部から選ぶことができます – luk1

+0

彼らは同じレベルではないので意味がない、部署はオブジェクトである本部の中にあります。配列やコレクションがありますが、単一のオブジェクトがある場合は表示されません。 –

+0

それで私はどのように声を出しますか?私はちょうどjavascriptと角を学んでいて、問題のその種のための良い解決策を見つけることに問題があります – luk1

関連する問題