Angularjs 如何使用ng选项显示父项和子项

Angularjs 如何使用ng选项显示父项和子项,angularjs,json,ng-options,Angularjs,Json,Ng Options,我想从中创建ng选项,我可以从父对象和子对象中选择元素。 我的json如下所示: { "errors":[ ], "headquarters":{ "id":1, "name":"headquarter name", "departments":[ { "id":2, "name":"department A name", "divisions":[ { "id":6,

我想从中创建ng选项,我可以从父对象和子对象中选择元素。 我的json如下所示:

{
"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"
           }
        ]
     }
  ]
 }
 }
      element.id as element.name for element in user.structure.headquarters && user.structure.headquarters.departments
<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>
从这个Json中,我想选择总部或部门,如果选择了部门而不是总部,则使用拾取的id选择部门。我试着这样做:

{
"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"
           }
        ]
     }
  ]
 }
 }
      element.id as element.name for element in user.structure.headquarters && user.structure.headquarters.departments
<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>
但它不起作用

这可能吗

或者有没有其他办法


JSON中始终只有一个总部。

您可以这样做,首先选择部门,然后从所选部门获取部门

您的HTML将如下所示:

{
"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"
           }
        ]
     }
  ]
 }
 }
      element.id as element.name for element in user.structure.headquarters && user.structure.headquarters.departments
<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>


那么您想先选择一个部门,然后再选择其中的一个部门?是的,这几乎就是我想要的。但从第一次选择中,我想选择总部或部门,而不仅仅是部门。如果我选择了部门,我想选择部门,如果我选择了总部,我就不需要部门。我想问的是,我是否可以先进行选择,让我从部门+总部中选择没有意义的部门,因为它们不在同一级别,部门位于总部内部,这是一个对象,您可以仅对数组或集合进行选择,但当您有单个对象时,则无法进行选择。那我该怎么做呢?我只是在学习javascript和angular,我在为这类问题找到好的解决方案方面遇到了一些问题。如果你有一系列总部,那么你可以在其他两个标签之前再加一个select标签,然后根据所选总部列出所有部门,然后从所选部门中选择部门