Jak mówi tytuł pytania, czy istnieje sposób zapętlania wąsów / kierownicy przez właściwości obiektu ?
Więc z
var o = {
bob : 'For sure',
roger: 'Unknown',
donkey: 'What an ass'
}
Czy mogę zrobić coś w silniku szablonów, co byłoby równoważne
for(var prop in o)
{
// with say, prop a variable in the template and value the property value
}
?
{{#each this}}
. Twój wybór terminów jest również mylący (co powoduje, że jeden obiekt jest „najwyższym poziomem”, a inny nie? Czym dokładnie są „wstępnie zdefiniowane” klucze? Itp.), Więc możesz chcieć ponownie zapoznać się z tymi pojęciami.W rzeczywistości jest bardzo łatwy do wdrożenia jako pomocnik:
Następnie użyj go w ten sposób:
źródło
EDYCJA: Kierownica ma teraz wbudowany sposób na osiągnięcie tego; patrz wybrana odpowiedź powyżej. Podczas pracy z zwykłym wąsem nadal obowiązują poniższe zasady.
Wąsy mogą iterować elementy w tablicy. Sugeruję więc utworzenie osobnego obiektu danych sformatowanego w sposób, w jaki wąs może współpracować z:
Teraz twój szablon Wąsy byłby podobny do:
Sprawdź sekcję „Niepuste listy” tutaj: https://github.com/janl/mustache.js
źródło
To jest odpowiedź @ Ben zaktualizowana do użytku z Ember ... Uwaga: musisz jej użyć,
Ember.get
ponieważ kontekst jest przekazywany jako ciąg.Szablon:
źródło
Odpowiedź Amita jest dobra, ponieważ będzie działać zarówno w wąsach, jak i kierownicach.
Jeśli chodzi o rozwiązania tylko dla kierownic, widziałem kilka i najbardziej podoba mi się
each_with_key
pomocnik bloku na https://gist.github.com/1371586 .'key'
lub'property'
itpźródło
Dzięki za rozwiązanie Bena, mój przypadek użycia wyświetla tylko określone pola w kolejności
z przedmiotem
Kod:
Obiekt źródłowy:
Szablon:
Wynik:
źródło
Jest to funkcja pomocnicza dla programu mustacheJS, bez wstępnego formatowania danych i pobierania ich podczas renderowania.
Szablon:
Wyjścia:
(kolejność może być losowa - to mapa) Może to być przydatne, jeśli znasz element mapy, który chcesz. Uważaj tylko na wartości fałszowania.
źródło
Użyłem starej wersji
1.0.beta.6
kierownicy, myślę, że gdzieś podczas 1.1 - 1.3 ta funkcjonalność została dodana, więc aktualizacja do 1.3.0 rozwiązała problem, oto użycie:Stosowanie:
źródło