2016-04-22 3 views
3

Ich versuche, Drop-down-Werte mit ng-Wiederholung in Sightly zu füllen. Der AEM-Knoten speichert meine Daten als String-Array, und ich kann es richtig abrufen, aber nicht in der Lage, sie zu füllen, da es "? undefined:undefined ?" Fehler wirft.Ng-Wiederholung in sightly

Mein Code:

<select name="${validation.elementName}" id="${validation.elementName}" ng-model="${validation.elementName}" ng-change="${properties.clickfunction}"> 
     <option ng-repeat="opt in ${properties.options}" value={{opt}}>opt</option>     
     </select> 

Und die Ausgabe:

output:

Gibt es etwas, ich bin fehlt? Als Sightly ist völlig neu für mich. Ich bin sehr dankbar für jede Hilfe, um diesen Code zu verbessern oder auf meinen Fehler hinzuweisen.

+0

Gibt es einen besonderen Grund, 'ng-options' nicht zu verwenden? –

+0

Da mein Projekt ein anderes Team für HTML, Entwicklung und Anwendung hat, bin ich in der Lage, Komponenten basierend auf den vom html Team bereitgestellten Compos zu erstellen :(Sie können sagen, dass es eine traurige Architektur ist. –

Antwort

1

Zunächst einmal müssen Sie die Daten, die Sie value in Anführungszeichen passieren wickeln, so sollte es so aussehen:

value="{{opt}}" 

Zweitens sieht es aus wie Sie die Werte ohne einfache Anführungszeichen sind vorbei und sie werden nicht als Zeichenfolgen erkannt. Werfen Sie einen Blick auf diese Plunker:

http://plnkr.co/edit/A2gZJbvVV9ozHloLkF4B?p=preview

können Sie sehen, dass die ersten ng-repeat funktioniert wie erwartet, aber der zweite Fehler in der Konsole wirft und nichts anzeigt. Im Grunde müssen Sie nur Anführungszeichen um jede Zeichenfolge in Ihrem Array setzen.

1

Danke @Victor für Ihre Antwort.

Hier finden Sie meine Ergebnisse.

  1. value = "{{opt}}" war mein Fehler beim Einfügen des Codes in stackoverflow.
  2. $ {properties.options} gibt String-Array zurück.
  3. ng-Wiederholung scheint nach dieser Ausgabe korrekt zu analysieren. this
+0

Es sieht so aus als ob Sie die Werte übergeben ohne einfache Anführungszeichen und sie werden nicht als Strings erkannt.Schauen Sie sich diesen Plunker an: http://plnkr.co/edit/A2gZJbvVV9ozHloLkF4B?p=preview Sie können sehen, dass die erste 'ng-Wiederholung' wie erwartet funktioniert, aber das zweite wirft einen Fehler in der Konsole und zeigt nichts an.Im Grunde müssen Sie nur Anführungszeichen um jede Zeichenkette in Ihrem Array setzen –

+1

Dank @Victor.Der oben genannte funktionierte perfekt.Können Sie Ihre erste Antwort bearbeiten oder die oben genannten veröffentlichen als Antwort, damit ich als richtig markieren kann. –

Verwandte Themen