Jak uzyskać dostęp do elementu tablicy dostępu według indeksu w kierownicy?
Próbuję określić indeks elementu w tablicy w szablonie kierownicy:
{
people: [
{"name":"Yehuda Katz"},
{"name":"Luke"},
{"name":"Naomi"}
]
}
Używając tego:
<ul id="luke_should_be_here">
{{people[1].name}}
</ul>
Jeśli powyższe nie jest możliwe, Jak napisać helpera, który mógłby uzyskać dostęp do elementu spefic wewnątrz tablicy?
9 answers
Spróbuj tego:
<ul id="luke_should_be_here">
{{people.1.name}}
</ul>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-23 07:12:51
Poniższe, z dodatkową kropką przed indeksem , działa zgodnie z oczekiwaniami. W tym przypadku nawiasy kwadratowe są opcjonalne, gdy po indeksie następuje inna właściwość:
{{people.[1].name}}
{{people.1.name}}
Jednak nawiasy kwadratowe są wymagane W:
{{#with people.[1]}}
{{name}}
{{/with}}
W tym ostatnim, używając numeru indeksu bez nawiasów kwadratowych otrzymamy jeden:
Error: Parse error on line ...:
... {{#with people.1}}
-----------------------^
Expecting 'ID', got 'INTEGER'
Na marginesie: nawiasy są (również) używane do składni segment-literal , aby odnosić się do rzeczywistych identyfikatorów (nie numery indeksów), które w przeciwnym razie byłyby nieprawidłowe. Więcej szczegółów w Co to jest prawidłowy identyfikator?
[[6]}(testowane z kierownicą w YUI.)2.XX Update
Możesz teraz użyć get
helpera do tego:
(get people index)
Chociaż Jeśli pojawi się błąd o indeksie, który musi być ciągiem, wykonaj:
(get people (concat index ""))
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-28 16:13:35
{{#each array}}
{{@index}}
{{/each}}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-15 04:05:56
Jeśli nieudokumentowane funkcje nie są Twoją grą, to samo można osiągnąć tutaj:
Handlebars.registerHelper('index_of', function(context,ndx) {
return context[ndx];
});
Następnie w szablonie
{{#index_of this 1}}{{/index_of}}
Napisałem wyżej zanim dostałem
this.[0]
Nie widzę, żeby ktoś posunął się za daleko z kierownicą bez pisania własnych pomocników.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-10 18:15:27
Jeśli chcesz użyć zmiennych dynamicznych
To nie zadziała:
{{#each obj[key]}}
...
{{/each}}
Musisz zrobić:
{{#each (lookup obj key)}}
...
{{/each}}
Zobacz handlebars lookup helper i podekspresje kierownicy .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-03-31 15:08:39
Podczas zapętlania tablicy za pomocą each
i jeśli chcesz uzyskać dostęp do innej tablicy w kontekście bieżącego elementu, zrób to tak.
Oto przykładowe dane.
[ { name: 'foo', attr: [ 'boo', 'zoo' ] }, { name: 'bar', attr: [ 'far', 'zar' ] } ]
Oto kierownica, aby uzyskać pierwszy element w tablicy attr
.
{{#each player}} <p> {{this.name}} </p> {{#with this.attr}} <p> {{this.[0]}} </p> {{/with}} {{/each}}
To wyświetli
<p> foo </p> <p> boo </p> <p> bar </p> <p> far </p>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-16 14:31:13
Spróbuj tego, jeśli chcesz pobrać pierwszy/ostatni.
{{#each list}}
{{#if @first}}
<div class="active">
{{else}}
<div>
{{/if}}
{{/each}}
{{#each list}}
{{#if @last}}
<div class="last-element">
{{else}}
<div>
{{/if}}
{{/each}}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-25 13:29:39
Można również użyć następującej składni, jeśli tablica nie jest nazwana (tylko tablica jest przekazywana do szablonu):
<ul id="luke_should_be_here">
{{this.1.name}}
</ul>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-16 12:45:11
W moim przypadku chciałem uzyskać dostęp do tablicy wewnątrz custom helper jak TAK,
{{#ifCond arr.[@index] "foo" }}
Który nie zadziałał, ale odpowiedź zaproponowana przez @ julesbou zadziałała.
Kod roboczy:
{{#ifCond (lookup arr @index) "" }}
Mam nadzieję, że to pomoże! Zdrowie.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-12-09 12:02:49