2013-11-26 6 views
5

Ich versuche Optionen auf meinem Multiselect vorzuwählen. Um meinen Fall klar zu machen, habe ich eine JSFiddle gemacht.AngularJS: Vorwählen von Optionen bei Mehrfachauswahl

Leider bin ich durch die Art, wie das Objekt empfangen wird, gebunden, also denke ich, dass ich das NG-Optionen-Attribut brauche.

Hat jemand eine Idee, wie ich sowohl 'Captain America' und 'Dr. Doom 'bei Belastung ausgewählt?

Antwort

2

Sie sind super nahe, zwei Änderungen. Definieren Sie die Attribute in Ihrem Controller wie diese

$scope.properties = ["Captain America", "Dr. Doom"]; 

Und fügen Sie ein kleines Stück zu Ihren ng-Optionen wie dieses

ng-options="option.name as option.name group by option.category for option in options" 

Ihres option.name wie wird feststellen, welche die gespeicherte Funktion wie in $ scope sieht .properties

+0

Sie könnten auch $ scope.properties = ["4", "9"] und verwenden Sie option.id als option.name –

3

Versuchen Sie Ihren Controller Code ändern zu:

function TestCtrl($scope) { 

    var myOptions = [{ 
     "id": "4", 
     "name": "Captain America", 
     "categoryId": "1", 
     "category": "Heroes" 
    }, { 
     "id": "5", 
     "name": "Iron Man", 
     "categoryId": "1", 
     "category": "Heroes" 
    }, { 
     "id": "10", 
     "name": "Magneto", 
     "categoryId": "2", 
     "category": "Vilains" 
    }, { 
     "id": "9", 
     "name": "Dr. Doom", 
     "categoryId": "2", 
     "category": "Vilains" 
    }]; 

    $scope.options = myOptions; 


    $scope.properties = [myOptions[0], myOptions[3]]; 
} 

Erläuterung: Sie Ihre ausgewählten Optionen (Eigenschaften) an verschiedene Instanzen der Objekte als diejenigen setzen, die die vollständige Liste zusammenstellen. Verwenden Sie die gleichen Objektreferenzen wie oben gezeigt.

+0

Ja, ich habe versucht diese Lösung - http://jsfiddle.net/k85M4/ – Eugene

Verwandte Themen