2016-09-06 3 views
0

So habe ich eine Mongodb-Datenbank, die mehrere Abteilungsnamen enthalten wird. Ich möchte http.get() die Namen von meinem Nodejs Server. Von diesem bekommen, möchte ich die Namen in eine Auswahlbox füllen. Der wichtige Teil dieser Frage ist nicht der Knoten/Mongo Teil, es ist der js/html Teil von mir, ich habe die Antwort von dem bekommen, wie lege ich es in eine Auswahlbox? Hier ist mein Code:Eine Auswahlbox mit Nodejs Informationen füllen

Der Teil des Codes:

$http.get('http://localhost:8000/getData').then(function(response) { 
    // code to place here  
}); 

und die HTML-Teil:

<select placeholder="Select a User"> 
    <option ng-model="selectUser"></option> 
</select> 
+0

können Sie die JSON-Struktur Ihrer Daten veröffentlichen? – defaultcheckbox

+0

Sie sollten erklären, was Sie versucht haben und was das Problem ist. –

Antwort

3

Zuerst müssen Sie die setzen Daten aus dem Antwortobjekt in eine Controller-Eigenschaft wie folgt:

$http.get('http://localhost:8000/getData').then(function(response) { 
    $scope.options = response.data; 
}); 

Und dann können Sie die ng-Optionen Richtlinie von Winkeln verwenden, um die Auswahlbox mit Werten wie folgt zu füllen:

<select placeholder="Select a User" ng-model="selectUser" data-ng-options="option.Member for option in options"> 
</select> 
+1

Ich glaube, diese Antwort ist die richtige. [ng-options] (https://docs.angularjs.org/api/ng/directive/ngOptions) wurde für diesen Zweck entwickelt. Ich denke, die Syntax ist zwar * fast * lesbar, aber absolut unmöglich zu merken ('color.name group by color.shade deaktiviere wenn color.notAnOption für color in colors' uhhh ...). Aber ich glaube immer noch, dass die Verwendung von ng-repeat für selects ein Fehler ist. Siehe http://stackoverflow.com/a/19558972/1497533. – ippi

+0

Das hat perfekt funktioniert. Es füllt die Daten perfekt! Mein einziges Problem ist jetzt, dass meine Daten nicht definiert sind .... großartig. Perfekte Antwort. Vielen Dank. –

+0

Mein réponse.data ist eigentlich ein Objekt wie dieses [{_id: "57cec43a03b3ea1f11910042", dept_name: "test"}]] Wie kann ich einfach den dept_name rausholen, um ihn in die Liste aufzunehmen? –

0

Somthing wie:

$scope.values; //values from server 
$http.get('http://localhost:8000/getData').then(function(response) { 
console.log(response.data); //make sure that this is what you are looking for    
$scope.values = response.data; 
      }); 
<select placeholder="Select a User" data-ng-options="option.name for option in values"> 
</select> 
Verwandte Themen