2016-07-11 38 views
0

Bis Winkel 1.4.4 (oder möglicherweise ein bisschen weiter) war es möglich, Gruppen in ng-Optionen so zu verwenden, dass wenn der Gruppenname eine leere Zeichenfolge oder null/nicht definiert war, eine Option außerhalb von Gruppen erstellt wurde. Gibt es eine Möglichkeit, dies in der neuen Version 1.5.7 zu tun? Gemäß this question schlägt die akzeptierte Antwort vor, eine neue Gruppe hinzuzufügen, um alle Nicht-Gruppenelemente zu sammeln, aber das entspricht nicht meinen Spezifikationen. Ich brauche natürlich am Anfang eine Option, die keiner Gruppe angehört, und danach die Elemente innerhalb von Gruppen, was auch nach der Migration auf die neue Version funktioniert.Ist es möglich Elemente in ng-Optionen mit und ohne Gruppen zu mischen?

Here is the fiddle für die verknüpfte Frage, wo ich die Gruppe loswerden möchte, die in diesem Beispiel No_Group genannt wird.

ng-options="d.title group by (d.group ==='' ? 'No_Group' : d.group) for d in data" 

$scope.data = [ 
     { 
      group:"", 
      title:"No GroupA" 
     }, 
     { 
      group:"Group_1", 
      title:"1" 
     }, 
     { 
      group:"", 
      title:"No GroupB" 
     }, 
     { 
      group:"Group_2", 
      title:"2" 
     }, 
     { 
      group:"", 
      title:"No GroupC" 
     } 
] 
+1

können Sie nur verwenden (d.group === ''? '': D.group) anstelle von (d.group === ''? 'No_Group': d.group). –

+0

y nicht entfernen Sie die Werte aus dem arry vor der Verwendung von ng-Optionen –

+0

Wie ich schon sagte, mit einer leeren Zeichenfolge erstellt er Null-Gruppen, so dass es buchstäblich * null * als der Name der Gruppe, das ist, was ich versuche beseitigen, abschütteln. – downhand

Antwort

0

Es stellte sich heraus, dass ich undefined als die Gruppe, leere Zeichenkette oder null funktioniert nicht mehr ernähren müssen. Eine Möglichkeit ist, den HTML-Teil zu schreiben, wie folgt:

ng-options="d.title group by (d.group ? d.group : undefined) for d in data" 

Aber da ich weiß, was außerhalb der Gruppe werden Objekte, löse ich das Problem eleganter durch sie nicht das Gruppenobjekt überhaupt geben, welche entspräche die folgenden in diesem Beispielcode:

$scope.data = [ 
     { 
      title:"No GroupA" 
     }, 
     { 
      group:"Group_1", 
      title:"1" 
     }, 
     { 
      title:"No GroupB" 
     }, 
     { 
      group:"Group_2", 
      title:"2" 
     }, 
     { 
      title:"No GroupC" 
     } 
] 

Schauen Sie sich die issue verantwortlich für dieses Verhalten.