Jak zaimplementować nie za pomocą instrukcji if w Ember Handlebars?


179

Mam takie oświadczenie:

{{#if IsValid}}

Chcę wiedzieć, jak mogę użyć negatywnego ifstwierdzenia, które wyglądałoby tak:

{{#if not IsValid}}

Odpowiedzi:


418

Proste odpowiedzi na proste pytania:

{{#unless isValid}}
{{/unless}}

Pamiętaj też, że możesz wstawić znak {{else}}pomiędzy {{#if}}lub {{#unless}}a tagiem zamykającym.


Dzięki, myślę, że powinni nazwać to {{#ifnot flag}} zamiast {{#unless flag}}.
Fabio Caccamo

2
@FabioCaccamo Pierwotni implementatorzy byli / są Rubyistami, gdzie unlessjest dość powszechną inwersją if.
Christopher Swasey

35

Możesz to zrobić na wiele sposobów.

1. Zastosowanie {{unless}}:

{{#unless isValid}}
  ...
{{else}}
  ...
{{/unless}}

2. Użyj pomocnika inline-if:

{{#if (if isValid false true)}}
  ...
{{else}}
  ...
{{/if}}

3. Użyj dodatku Ember-True- Helpers:

{{#if (not isValid)}}
  ...
{{else}}
  ...
{{/if}}

Okazało się, że jest całkiem przydatny do użycia w następujący sposób: {{input type = "text" ... disabled = (not someProperty) ...}}
lesyk

5

można to zrobić na wiele sposobów.

1 użycie unless

{{#unless IsValid}}
<Your Code>
{{/unless}}

2. używać if else

{{#if IsValid}}
{{else}}
<Your Code>
{{/if}}

3. użyj notpomocnika

{{#if (not IsValid)}}
<Your Code>
{{/if}}

3

unlesspomocnik blokowy (wbudowany pomocnik)

unlesspomocnik jest odwrotnością ifpomocnika.

Jego blok zostanie wyrenderowany, jeśli wyrażenie zwróci fałszywą wartość.

  {{#unless valid}}
  <h3 class="warning">WARNING</h3>
  {{/unless}}

1
{{#if items.length}}
    //Render
{{/if}}

Tutaj items.length .. jeśli zwraca jakąś wartość poza wartością null, to tylko ona wejdzie do pętli if.

UWAGA: Możesz również sprawdzić wartości logiczne. W bloku Jeśli

{{#if booleanFloag}}

0

Poniższe oświadczenia pomogą w pełni, jeśli chcesz użyć jeśli i jeszcze:

{{#if author}}
    <h1>{{firstName}} {{lastName}}</h1>
{{else}}
    <h1>Unknown Author</h1>
{{/if}}

UWAGA: Nie zamykaj bloku if do zakończenia logiki ...

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.