2016-06-30 4 views
0

Ich bin eine bloggin Software zu schaffen, und ich schaffte eine AngularJS Dropdown wie folgt Bedingungen für den PostenMarkierten Optionen zusammen mit anderen in einem AngularJS Dropdown

<select multiple="multiple" name="terms" ng-model="post.data.attributes.term_ids" required> 
      <option value="" disabled="" selected="">Tags</option> 

      <option ng-repeat="term in terms | filter: { taxonomy: 'tag' } " value="{{term.id}}">{{term.name}}</option> 
    </select> 

Dies funktioniert gut zu wählen, wenn ich die Post erstellen, aber Wenn ich den Beitrag bearbeite, möchte ich auch die Begriffe anzeigen, die beim Erstellen des Beitrags ausgewählt wurden.

d. H. Wenn die "term.id in post.data.attributes.term_ids" dann muss der Begriff in der Dropdown-Liste ausgewählt werden. Ich habe die Dokumente und andere Beispiele gelesen, aber ich bin mir nicht sicher, wie das zu tun ist. Jede Hilfe wird geschätzt.

Antwort

0

benutzen Sie einfach die ngSelected Attribut:

<select multiple="multiple" name="terms" ng-model="post.data.attributes.term_ids" required> 
      <option value="" disabled="" selected="">Tags</option> 

      <option ng-repeat="term in terms | filter: { taxonomy: 'tag' } " value="{{term.id}}" ng-selected="post.data.attributes.term_ids.indexOf(term.id) > -1">{{term.name}}</option> 
    </select> 

oder eine bessere Art und Weise .. Sie ngOptions nutzen könnten. so etwas wie:

<select multiple="multiple" name="terms" ng-model="post.data.attributes.term_ids" required ng-options="term.name for term.id in terms | filter: { taxonomy: 'tag' } "> 
</select> 
+0

sie beide nicht funktionieren, modifizierte ich den zweiten Vorschlag, um mehrere“name = "Begriffe" ng-Modell = "post.data.attributes.term_ids" erforderlich ng " " aber ich möchte, dass der Wert von post.data.term_ids nur term.id ist. Er enthält den gesamten Begriff – LeoG

+0

. Haben Sie Ihre Datentypen überprüft? Sie könnten einen String mit einem Integer –

+0

vergleichen. post.data.attributes.term_ids ist eine Liste von ganzen Zahlen, muss durchlaufen werden und dann mit term.id vergleichen, das scheint das Problem zu sein. Danke für Ihre Hilfe. – LeoG

Verwandte Themen