2013-01-20 12 views
6

Powiedzmy mam proste product_orders kolekcję w Meteor (_id, user_id, nazwa_użytkownika, product_name, price_unit, ilość) i chcę, aby pokazać wszystkie rozkazy pojedynczego użytkownika w tabeli, gdzie każdy wiersz powinien zawierać:Jak wykonać prostą matematykę w szablonie Meteora?

user_name, product_name, quantity, price_unit, quantity, price_total (price_unit * quantity) 

Dodatkowo chciałbym wyświetlić sumę całkowitą dla wszystkich zamówień użytkownika.

Nie widzę łatwego sposobu na zrobienie tego w szablonie Handlebars.js, ponieważ Handlebars nie wydaje się obsługiwać prostych operacji matematycznych. Mogę z łatwością zwrócić kursor produktu product_order do mojego szablonu, ale nie widzę łatwego sposobu obliczania wartości price_total i grand total w szablonie.

Myślę o stworzeniu jakiegoś pomocnika szablonu, ale nie jestem pewien, czy to właściwy kierunek. Ten problem wygląda na to, że musi mieć proste eleganckie rozwiązanie w postaci &.

Odpowiedz

13

Tak, powinieneś napisać pomocnika. Kierownice nie obsługują używania logiki w szablonach (co jest dobrą praktyką, ponieważ zmusza do zastosowania schematu separacji problemów).

Szablon pomocnika wygląda następująco:

Handlebars.registerHelper("grandTotal", function(user_name) { 
    var grandTotal = some_magic_to_calc_total(user_name); 
    return grandTotal; 
}); 

Następnie można wywołać pomocnika takiego od szablonu:

<template name="foo"> 
    {{grandTotal user_name}} 
</template> 

można przeczytać więcej na temat pomocników w Handlebars.js docs.

Powiązane problemy