2016-05-05 24 views
1

I Angular 1 bin mit und haben versucht, die Dropdown-Liste Werte anzuzeigen mit ng-Optionen Richtlinie und die einzige, die für mich arbeiten könnte, ist:Mit ng-Optionen Syntax mit Objektindex anstelle von Objektnamen

<selectdata-ng-options="key as value for (key,value) in JSON.ObjectName.ListValues"></select> 

Aufgrund der Art und Weise, wie mein JSON generiert wird, muss ich eine beliebige Anzahl von Dropdowns iterativ anzeigen. Die einzige Möglichkeit, die obige Syntax zu verwenden, besteht darin, einen indexbasierten Wert zuzuweisen. Beispiel: index [0] anstelle von ListValues ​​. Etwas wie folgt aus:

<select data-ng-options="key as value for (key,value) in JSON.ObjectName.index[0]"> 

Mein JSON-Objekt ist das Format:

{ 
    "JSON": { 
     "ObjectName": { 
      "ItemValues": { 
       "0000": "County", 
       "0100": "City", 
       "0200": "State", 
       "0300": "Region", 
       "0400": "Country" 
      }, 
      "AreaValues": { 
       "1111": "Metro", 
       "11AA": "Subway", 
       "2222": "Bus" 
       "22BB": "Transit" 
      } 
     } 
    } 
} 

ich versucht habe, die JSON zu einem Bereichsobjekt in meinem Controller zuweisen und versuchte, auf meiner Seite angezeigt werden, aber wenn Ich würde dies für eine beliebige Anzahl von Dropdowns tun, dieser Ansatz würde nicht effizient funktionieren.

Meine einzige andere Möglichkeit ist, dies mit der JSON-Index Arbeit

würde dieser Ansatz zu tun?
Sollte ich benutzerdefinierte Anweisungen verwenden?
Gibt es eine bessere Möglichkeit, dieses Problem anzugehen?

Antwort

0

Eine Option, die da wäre, wäre, das Objekt direkt an den Controller und nicht an das $ scope-Objekt in angular anzuhängen.

var this = ctrl; 
 

 
ctrl.object //this should attach the object to he scope of the controller.
<select id="idName" name="name" ng-model"ctrl.object.ListValues" data-ng-options="key as key for (key,value) in ctrl.objectName.ListValues"></select>

Man könnte so etwas wie der oben genannte Code Zugang zu allen Optionen verwenden und sie in dem HTML-Code an das Auswahlelement angezeigt werden soll.

Ich bin neu zu eckig, also entschuldige ich mich wenn das nicht stimmt, aber ich habe sowas mit ngOptions schon mal gemacht und diese Lösung scheint im beschriebenen Szenario gut zu funktionieren.

+0

Welche Logik wird von Ihrem Controller bereitgestellt? Es gibt eine Menge Dinge, die bewirken können, ob Sie die Informationen wie gewünscht anzeigen können oder nicht. – thecommunictycodeguy