0

Ich erstelle eine sortierte Sortierbox, um meine ng-wiederholten Daten zu sortieren.AngularJS Eingabewert als Array nicht übereinstimmendes Modell

Meine Art Box sieht derzeit wie folgt aus:

<select name="day" ng-model="Events.orderAttraction" data-ng-change="Events.limit = 6"> 
    <option value="['!rating', '-rating']">Rating (high to low)</option> 
    <option value="rating">Rating (low to high)</option> 
    <option value="name">Attraction (a-z)</option> 
    <option value="-name">Attraction (z-a)</option> 
</select> 

Und meine Bestellung Variable in meinem Controller ist derzeit:

vm.orderAttraction = ["!rating", "-rating"]; 

Als meine erste Option Wert entspricht genau die gleiche wie mein dem Modellwert Wenn meine Auswahlbox verknüpft ist, sollte sie beim Laden der Seite standardmäßig auf diesen Wert eingestellt werden. Woher bekomme ich stattdessen? Objekt: 5 (leere Option), wenn meine Auswahlbox auf der Seite geladen wird.

Ich habe das Gefühl, dass angular meinen Optionswert als String und nicht als Array aufnimmt und daher nicht mit dem Modellwert übereinstimmt. Aber ich kann es einfach nicht funktionieren.

Danke für jede Hilfe.

Antwort

1

Von https://docs.angularjs.org/api/ng/directive/ngOptions:

ngOptions verwendet werden soll, wenn das Modell auf einen Nicht-String-Wert gebunden werden muss. Dies liegt daran, dass ein option-Element derzeit nur an String-Werte gebunden werden kann.

+0

Ahh, diese Art von saugt.Ich werde es nächste Woche in der Arbeit versuchen. Wenn es funktioniert, werde ich als richtige Antwort markieren. –

+0

Ich kann mir vorstellen, dass Sie in der Lage sein könnten, eine andere Lösung mit 'JSON.parse' und' JSON.stringify' zusammenzusetzen, aber ich würde denken, dass das komplexer wäre als mit 'ngOptions'. – JcT