2010-09-22 10 views
6

Oceniam http://github.com/janl/mustache.jsCzy jest coś, czego nie mogę zrobić z wąsami?

i zastanawiam się, jak to będzie działać w miarę upływu czasu. Jeśli po prostu zbuduję gigantyczny obiekt, czy wąsy są wystarczające, aby przekształcić je w jakąkolwiek formę HTML?

Moje pytanie brzmi. Czy coś nie może zrobić wąsów?

(Moja myśl jest, że to właśnie transformacja drzewa z JSON do HTML, ale nie jestem pewien, jak do sprawdzania, czy uzyskać wystarczającą pewność, postawić przed nim)

dalszych wyjaśnień

Załóżmy, że wszystko co miałem było gigantycznym obiektem, a następnie dałem szablonowi wąsów w jednej iteracji; czy jest coś w HTMLu, którego nie można wyrazić wąsami za pośrednictwem jego języka.

+1

Głosuję za wspólnotowym wiki. – vol7ron

+3

Biorąc pod uwagę nazwisko, spodziewam się, że będziesz w stanie sprawić, że kobiety zaczną mdleć i rzucać przeciętnym baseballem. – NickHeidke

Odpowiedz

8

Ponieważ wąsy to tylko szablon języka JavaScript, możesz zrobić wszystko, co możesz już zrobić w JavaScript, a JavaScript jest Turing zakończony. Więc nie, nie ma nic, co nie może zrobić w wąsach; w rzeczywistości nie ma nic co można zrobić w Moustache, czego nie można zrobić samemu w JavaScript, po prostu sprawia, że ​​niektóre rzeczy są wygodniejsze.

Podczas oceniania czegoś takiego, zamiast określać, co może i czego nie można zrobić, bardziej przydatne jest pytanie "czy to sprawia, że ​​rzeczy, które muszę robić łatwo" i "czy popełniają błędy, które chcę unikaj trudnych do wykonania. "

Na przykład jednym ze sposobów oceny byłoby to, czy ułatwia to uniknięcie ataków cross-site scripting (XSS). Zgodnie z dokumentacją "wąsy.js ucieka od wszystkich wartości przy użyciu standardowej podwójnej składni wąsów", więc brzmi to tak, jak robi to dobrze, pomagając zapobiegać tego rodzaju atakom.

Aby wykonać lepszą pracę przy jej ocenie, musisz podać więcej szczegółów na temat swoich wymagań. Co próbujesz zrobić? Z czym musisz się zintegrować?

edit

Nawet po wyjaśnienia, to wciąż nie do końca jasne, co szukasz. Nawet ograniczając się do rozwijania pojedynczego szablonu wąsów z pojedynczym widokiem jako danych wejściowych, możesz wytworzyć dowolne ciągi, a więc dowolny dowolny kod HTML, po prostu nadaj mu ten ciąg jako dane wejściowe.

Jeśli pytasz, czy możesz wykonać dowolne obliczenia, biorąc pod uwagę szablon i widok do renderowania, odpowiedź na to również jest twierdząca, ponieważ wąsy pozwala na wywoływanie funkcji w szablonie i te funkcje są zapisywane w JavaScript, który jest ukończony przez Turinga.

Ale oba te są trywialne odpowiedzi; możesz wytworzyć dowolne dane wyjściowe, podając je jako dane wejściowe lub możesz wykonać dowolne dane obliczeniowe za pomocą sekcji wyższego rzędu. Jak już wcześniej wspomniałem, to, co można z nim zrobić, jest mniej interesujące niż to, z czym jest związane, i jakie błędy są trudne do wykonania.

Przypuszczam, że jedną słabością, która może być typem, którego szukasz, jest to, że jeśli potrzebujesz większej mocy niż sam system wąsy, musisz przekazać te funkcje jako część widoku. Dlatego musisz połączyć obiekt, który jest wyświetlany z kodem, który będzie używany do jego wyświetlania.A jeśli usuniesz możliwość wywołania Javascript z widoków przekazywanych do szablonów, to poważnie ogranicz to, co możesz zrobić. Biorąc pod uwagę, że obiekty te znane są jako "widoki", wydaje się, że z założenia łączy się je z logiką prezentacji; to bardzo różni się od systemów szablonów, w których pozwalasz szablonowi wyodrębnić wartości bezpośrednio z obiektów twojego modelu.

3

Tak, jest wiele rzeczy, których nie można zrobić w wąsy. Wąsy są prostsze niż niektóre inne w pełni funkcjonalne systemy szablonów (takie jak ten w Django). Wąsy to bardzo minimalny system szablonów, który zachęca (poprzez brak funkcji) do wdrażania szablonów "bez logiki". Oznacza to, że niektóre operacje przetwarzania, które można wykonywać w innych systemach szablonów, muszą być wykonywane w kodzie, który modyfikuje dane wysyłane do szablonu.

To nie jest zły system szablonów, to tylko minimalny system, który ma być prosty i szybki.

Powiedziałbym więc, że odpowiedź na to pytanie brzmi: "Tak, są rzeczy, których nie można zrobić w wąsy (w porównaniu do innych systemów szablonów)".

Powiązane problemy