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>

Respostas:


337

Tente o seguinte:

<ul>
    <li ng-repeat="(key,val) in data">{{key}}: {{val}}</li>
</ul>

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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.