AngularJS - Como posso referenciar o nome da propriedade dentro de um ng-Repeat

134

Além de renderizar o valor das propriedades em um objeto, também gostaria de renderizar o nome da propriedade como um rótulo. Existe uma maneira de fazer isso ng-repeat? Por exemplo:

<ul>
    <li ng-repeat="option in data">{{propertyName}}: {{option}}</li>
</ul>

O que pode cuspir algo como isto:

<ul>
    <li>Name: John</li>
    <li>Phone: (123) 456-7890</li>
    <li>Country: England</li>
</ul>
Brian Flanagan
fonte

Respostas:

337

Tente o seguinte:

<ul>
    <li ng-repeat="(key,val) in data">{{key}}: {{val}}</li>
</ul>
Andrew Joslin
fonte
30
@ Andy - eles não são tão bons, na verdade. Eles precisam de exemplos de código reais mais simples, como você mostrou aqui. Obrigado pela sua resposta e continue postando no StackOverflow; sua postagem realmente me ajudou a entender como acessar os documentos do AngularJS. Melhores cumprimentos e voto positivo!
noogrub
tão fácil, mas não pensei nisso: D tnx!
Guntram
o que fazer se eu tiver uma função como --- myFunc (key) --- que precisa o valor da chave este gonne mostrar-me a chave nome em html e não o valor
Nejmeddine Jammeli
28

O problema com a documentação é que diz (key, value)com esse espaço ... levei algum tempo para descobrir que, por isso, não funciona

darkyndy
fonte
1
Muito obrigado. Você está certo. Você não pode ter um espaço entre a vírgula e o valor. (chave, valor) não (chave, valor).
Chad DeShon
9
Talvez as coisas sejam diferentes nas versões mais recentes do Angular, mas você pode ter um espaço entre elas (key, val). É frequentemente assim que faço.
precisa
Eu descobri (chave, valor) não funcionou para mim. Você está dizendo que é por causa do espaço em branco ??? Nossa! Mas obrigada.
Code-sushi
2
Funciona para mim com o espaço também.
Shawn Lauzon
val vs valor afetando o espaço?
Danny Mahoney