我有像这样的JSON
{
"cars":[
{
"id":"012",
"model":"honda",
"parts":[
{
"id":"p1",
"name":"tyre",
},
{
"id":"p2",
"name":"muffler",
}
]
},
{
"id":"022",
"model":"vw",
"parts":[
]
}
]
}
我是AngularJS的新手,我有2个下拉菜单,DROPDOWN1显示汽车模型如下:
DROPDOWN1
honda
vw
和DROPDOWN2应该在DROPDOWN1中加载选定汽车模型的零件。例如,如果我选择" honda"在DROPDOWN1中,DROPDOWN2应该加载:
DROPDOWN2
tyre
muffler
如果我选择" vw"在DROPDOWN1中,DROPDOWN2将不会加载,因为大众没有任何部件。
我有html这样的2个选择(下拉列表),请注意我使用 ng-options 而不是重复:
<p><strong>Select a car</strong></p>
<select
required
ng-change="selectCarAction()"
ng-model="selectCar"
ng-options="car.model for car in cars track by car.id">
<option value="" label="Select a car"></option>
</select>
<p><strong>Select a part</strong></p>
<select
required
ng-model="selectPart"
ng-options="part.name for part in parts track by part.id">
<option value="" label="Select a part"></option>
</select>
在我的js文件中,我得到了我的汽车响应数据,如:
$scope.myData= JSON.stringify(myresponse.data);
$scope.cars= myData.data.cars;
,然后我有选择汽车的功能,一旦我选择了汽车,我的目的是加载DROPDOWN2:
$scope.selectCarAction = function(){
if ($scope.selectCar == null){
console.log("You selected car: N/A");
} else {
console.log("You selected car: " + $scope.selectCar.model);
$scope.parts= $scope.selectCar.parts;
}
};
当我的DROPDOWN1加载正常时,我的DROPDOWN2从未被加载,但在上面的js函数中,我的$ scope.parts获取了部分。如何将这些加载到我的DROPDOWN2中?
答案 0 :(得分:0)
修正了原帖。我正在使用&#34;参与car.part&#34;而不是&#34;参与部分&#34;在我上面的ng-option中。这解决了这个问题。