2012-06-05 10 views
5

Próbuję dodać niewielką ilość logiki do jednego z moich szablonów (proszę nie wyśmiewać mnie z powodu błędów logicznych w widoku) i mam trudności z uzyskaniem prawidłowej składni Hamlc.Jak zrobić zamknięcie kawy ham-lowej, które obejmuje wiele linii?

ja Iterowanie nad kolekcji i chcesz pominąć elementy, które istnieją w innej kolekcji

Prosta się coffeescript wyglądałby następująco:

for artwork in artworks 
    unless _.find(cart_items, (ci) -> 
    ci.id == artwork.product_code 
     alert 'artwork not in cart' 

Staram:

- for artwork in artworks 
    - unless _.find(cart_items, (ci) -> | # < multiline, right? 
    ci.id == artwork.product_code 
    - alert 'artwork not in cart' 

i otrzymuję informacje na temat hogwash:

Block level too deep in line undefined 

Wszelkie pomysły? TIA, Billy

+0

W 'Jestem sekcji trying', jeśli nim plików haml lub coffeescript pliku ? Jakiego tłumacza prowadzisz? – asawyer

+0

Ah, racja, dzięki. Jest to plik hamlc - https://github.com/9elements/haml-coffee. Mój przedstawiciel to bzdura, więc nie mogłem dodać tagu hamlc ..;) – Billy

+1

Nie widziałem tego wcześniej, dzięki temu to sprawdzę. Dodano tag dla Ciebie. – asawyer

Odpowiedz

1

udało mi się uzyskać to do pracy poprzez umieszczenie zamknięcie na tej samej linii:

- for artwork in artworks 
    - unless _.find(cart_items, (ci) -> ci.id == artwork.id) 
    - alert 'not in the cart' 
+1

Haml-Coffee miał błąd dotyczący obsługi wielu linii, który został naprawiony. Ponadto, zgodnie z dokumentacją Haml, znak wielolinie ('|') musi być również umieszczony na ostatniej linii. – Netzpirat