Angularjs 如何使用ng选项显示父项和子项
我想从中创建ng选项,我可以从父对象和子对象中选择元素。 我的json如下所示: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,
{
"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标签,然后根据所选总部列出所有部门,然后从所选部门中选择部门