Dynamische Drop-Down-AngularJS und Datenbank mit JSON
Ich habe herausgefunden, wie das Auffüllen der ersten dropdown-Menü aus der Datenbank mit den Eckigen, aber ich bin stecken, wie halten Sie den gewählten Wert der ersten dropdown-box zur Abfrage, die zum Auffüllen der zweiten box. Auch, wenn die Daten in separaten Tabellen, werde ich um einen API-Aufruf jedesmal ein dropdown ausgewählt? Ich habe gesehen, viele Beispiele, dies zu tun mit pre-set-Tabellen, aber nicht mit den tatsächlichen api-Aufrufe. Dies ist, wo ich verwirrt.
Hier ist, was ich jetzt habe.
app.controller('SelectOptGroupController', function($scope,$http) {
$http.get('api2.php').
success(function(data) {
$scope.animals = data;
});
$scope.species= [];
$scope.getOptions2 = function(){
//NOT SURE FROM HERE
};
})
HTML-Datei
<div ng-controller="SelectOptGroupController" class="md-padding selectdemoOptionGroups">
<div>
<h1 class="md-title">Select Animal</h1>
<div layout="row">
<md-select ng-model="animals" placeholder="Animals" ng-change="getOptions2()">
<md-option ng-repeat="animal in animals" value="{{animal.animal}}">{{animal.animal}}</md-option>
</md-select>
<md-select ng-model="species" placeholder="Species">
<md-option ng-repeat="spec in species" value="{{spec.animal_species}}">{{spec.animal_species}}</md-option>
</md-select>
</div>
</div>
Schon jetzt hat die Datenbank eine Tabelle mit zwei Spalten, für die Tier-und animal_species. Es gibt mehrere Arten des gleichen Tieres, zum Beispiel gibt es drei Einsätze mit den tierischen Namen bear aber jede der animal_species sind verschiedene grizzly -, schwarz -, und polar. Vielen Dank für jede Hilfe!!!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für Ihre erste Frage an die ng-Modell der md-wählen Sie entspricht, um das ausgewählte Tier in der Sammlung, so dass in diesem Beispiel $Umfang.Modell.selectedAnimal, wäre die variable, die Sie verwenden können, um Zugriff auf das ausgewählte Tier.
Als für Ihre wiederholten api-Aufrufe in Frage, können Sie entweder die Datenbank wieder alle Arten und verwalten Sie die 'aktiv' in der js, oder verwenden Sie einen Dienst zu jeder cache-Anforderung, so dass mindestens jedes Tier wird nur die Abfrage der api einmal. Dies hält auch die Daten, die Logik aus dem controller, um es wiederverwendbar (sowie einfach zum freigeben von Daten zwischen mehreren Controllern/- Richtlinien/- Dienste).
Wenn Sie möchten, um alle Arten in einem Rutsch und nur filter auf dem front-end können Sie etwas wie das hier tun: