Używam Handlebars.js do renderowania widoku z boku klienta. Jeśli jeszcze działa świetnie, ale napotkałem warunek 3-drogowy, który wymaga ELSE JEŻELI:
To nie działa:
{{#if FriendStatus.IsFriend }}
<div class="ui-state-default ui-corner-all" title=".ui-icon-mail-closed"><span class="ui-icon ui-icon-mail-closed"></span></div>
{{else if FriendStatus.FriendRequested}}
<div class="ui-state-default ui-corner-all" title=".ui-icon-check"><span class="ui-icon ui-icon-check"></span></div>
{{else}}
<div class="ui-state-default ui-corner-all" title=".ui-icon-plusthick"><span class="ui-icon ui-icon-plusthick"></span></div>
{{/if}}
Jak zrobić ELSE IF z kierownicą?
handlebars.js
reach4thelasers
źródło
źródło
Odpowiedzi:
Kierownica obsługuje
{{else if}}
bloki od 3.0.0.Kierownice w wersji 3.0.0 lub nowszej:
Przed Handlebars v3.0.0 należy jednak zdefiniować pomocnika, który
if
ręcznie obsługuje logikę rozgałęzienia lub instrukcje zagnieżdżenia :źródło
else if
Zwykle używam tego formularza:
źródło
{{/if}}{{/if}}{{/if}}{{/if}}{{/if}}
Kierownice obsługują teraz
{{else if}}
od 3.0.0. Dlatego twój kod powinien teraz działać.Możesz zobaczyć przykład w „Warunkach” (nieco poprawiony tutaj z dodanym
{{else}}
:http://handlebarsjs.com/block_helpers.html
źródło
{{else if}}
składnię.Duch kierownicy polega na tym, że jest „bez logiczna”. Czasami sprawia to, że czujemy się, jakbyśmy z tym walczyli, a czasem kończy się brzydka zagnieżdżona logika if / else. Ty mógł napisać pomocnika; wiele osób rozszerza kierownicę o „lepszy” operator warunkowy lub uważa, że powinien on być częścią rdzenia . Myślę jednak, że zamiast tego
możesz zaaranżować rzeczy w swoim modelu, abyś mógł to mieć,
Upewnij się tylko, że tylko jedna z tych flag jest zawsze prawdziwa. Możliwe, że jeśli używasz tego
if/elsif/else
w swoim widoku, prawdopodobnie używasz go również w innym miejscu, więc te zmienne mogą nie być zbędne.Trzymaj to szczupłe.
źródło
Napisałem tego prostego pomocnika:
Jest to coś w rodzaju wzoru łańcucha odpowiedzialności w kierownicach
Przykład:
Nie jest inaczej, ale w niektórych przypadkach może ci pomóc)
źródło
Wbudowane pomocniki
Możesz użyć pomocnika if, aby warunkowo renderować blok. Jeśli jego argument zwróci false, niezdefiniowany, null, „”, 0 lub [], kierownice nie renderują bloku.
szablon
Po przekazaniu następujących danych wejściowych do powyższego szablonu
źródło
Cześć, mam tylko MAŁĄ edycję nazwy klasy i jak do tej pory iv ją ujawniłem. myślę, że muszę przekazać pomocnikowi parametry w wielu plikach,
server.js
nagłówek. uchwyty
źródło