Ich bin ein JSON-Objekt über einen API-Dienst übergeben. Ich habe keine Kontrolle über das Format des JSON. Es ist jedoch ein gültiges JSON-Objekt:Verwenden der Punktnotation in Angular auf JSON-Objekt funktioniert nicht wie erwartet
{
"Template" : {
"Parameters" : {
"Name" : "Test",
"Version" : "1.0"
},
"Fields" : {
"Field" : [{
"Prompt" : "Last Name:"
}, {
"Prompt" : "First Name:"
}, {
"Prompt" : "Middle Name"
}, {
"Prompt" : "ID Number:"
}
]
},
"Captures" : {
"Capture" : [{
"Prompt" : "Picture"
}, {
"Prompt" : "Picture from file"
}, {
"Prompt" : "Signature"
}
]
}
}
}
Was ich tun müssen, um eine Schleife durch eine Liste der Felder in dem Objekt, so dass ich Werte von dort angezeigt werden kann. Im Fall dieses Beispiels versuche ich, eine Liste von Eingabeaufforderungswerten aus den Feldern zu drucken.
http://jsfiddle.net/toddhd/0wbfpxkj/9/
<div ng-repeat="item in template.Fields.Field">
{{item.Prompt}}
</div>
Dies wird bei der JSFiddle oben, indem man viel besser erklärt.
Was ich will, ist einfach zu tun, um die Liste der Felder erhalten mit Punkt/Punkt-Notation, wie zum Beispiel:
template.Fields.Field
Aber das funktioniert nicht für mich. In dem Beispiel habe ich auch eine Reihe von ng-Wiederholungen gemacht, die nacheinander jede Sammlung durchlaufen. Das funktioniert und produziert das gewünschte Ergebnis, aber es ist ausführlich und hässlich.
Ich bin mir sicher, ich missverstanden nur die Struktur des JSON-Objekts selbst, oder vielleicht die richtige Punkt/Punkt-Notation, um dorthin zu gelangen. Aber ich kann es einfach nicht herausfinden. Kannst du bitte einen Blick darauf werfen und mir sagen, wo ich falsch liege?
Danke
Nun .. Ihre Datenstruktur ist kein Array - es ist ein Objekt, mit vielen Feldern. Sie iterieren ein Objekt über 'ng-repeat =" (k, v) in obj "' - eine Geige mit der richtigen Wiederholungssyntax: http://jsfiddle.net/0wbfpxkj/11/ – tymeJV
Bitte vermeiden Sie die Verwendung externer Ressourcen als Details deiner Frage. Bearbeiten Sie die relevanten Informationen und fügen Sie sie ein. – Amit