2016-07-29 34 views
0

ich JSON haben ähnlicheAngularJS bekommen JSON-Daten von array2 in array1

{ 
    "cars":[ 
     { 
      "id":"012", 
      "model":"honda", 
      "parts":[ 
       { 
        "id":"p1", 
        "name":"tyre", 
       }, 
       { 
        "id":"p2", 
        "name":"muffler", 
       } 
      ] 
     }, 
     { 
      "id":"022", 
      "model":"vw", 
      "parts":[ 

      ] 
     } 
    ] 
} 

Ich bin neu in AngularJS und ich habe 2 Dropdown-Listen, Automodelle wie DropDown1 zeigt:

DROPDOWN1 
honda 
vw 

und DROPDOWN2 dass soll mit Teilen für das ausgewählte Automodell in DROPDOWN1 geladen werden. Zum Beispiel, wenn ich „Honda“ in DropDown1 auswählen, sollten DROPDOWN2 mit geladen werden:

DROPDOWN2 
tyre 
muffler 

Wenn ich wählen Sie „vw“ in DropDown1, dann laden DROPDOWN2 nicht, da keine Teile für VW sind.

Ich habe html mit 2 wählen (Dropdown-Listen) wie folgt aus, beachten Sie, dass ich ng-Optionen bin mit statt wiederholen:

<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> 

Und in meinem JS-Datei, bekomme ich mein Auto Antwort Daten wie:

 $scope.myData= JSON.stringify(myresponse.data); 
     $scope.cars= myData.data.cars; 

, dann habe ich Funktion Auto ausgewählt werden und die Absicht ist es, auch DROPDOWN2 zu laden, wenn ich Auto ausgewählt bekommen:

Während mein DROPDOWN1 gut geladen ist, wird mein DROPDOWN2 nie geladen, aber in der obigen js-Funktion bekommt mein $ scope.parts die Teile. Wie lade ich diese in mein DROPDOWN2?

+0

Sie stringieren Daten nicht, um sie zu verwenden. Sehen Sie sich den Fehler an, der in der Konsole durch die nächste Zeile ausgelöst wird, wenn Sie das tun. – charlietfl

+0

Ich bin, schauen Sie nach $ scope.myData. Danke – pixel

+0

Rechtschreibung? "partin" statt "part in" in deinen ng-Optionen ??? – o4ohel

Antwort

0

Der ursprüngliche Beitrag wurde korrigiert. Ich habe "part in car.part" anstelle von "part in parts" in meiner obigen ng-Option verwendet. Das hat das Problem behoben.