Gram w Node i Express i używam silnika szablonowego Pug (wcześniej Jade) do renderowania mojego html. Wszystko działa dobrze, dopóki nie zacząłem próbować wprowadzać zmiennych do href
moich łączy kotwicznych. Co dziwne, jeśli zmienię moją aplikację Express na view engine
na jade
, wszystko zacznie działać zgodnie z oczekiwaniami.Zmienne mopsy (dawniej Jade) nie działają (interpolacja) poprawnie wewnątrz kotwicy Href
Na podstawie przeczytałem, że problem wydaje się być problemem interpolacji, jednak nie mogę znaleźć zasobu lub dokumentacji, która pokazuje, jak poprawnie rozwiązać ten problem.
Przykł.
Wyciągam dane z tablicy json rooms
, a następnie za pomocą pętli for
przechodzę przez każdy element tablicy i wyprowadzam dane dla każdego pokoju. Korzystanie z następujących prac.
table.table.table-striped
thead
tr
th Name
th Id
tbody
each room in rooms
tr
td(style="width: 50px;")
a(href!="/admin/rooms/delete/#{room.id}") Delete
td #{allTitleCase(room.name)}
td #{room.id}
Powyższe NIE działa poprawnie. W szczególności link a(href='/admin/rooms/delete/#{room.id}') Delete
nie działa poprawnie. Zamiast wstawiania identyfikatora pomieszczenia do łącza href, dosłownie wyprowadza # {room.id} jako końcową część łącza href
.
Wszelkie pomysły, jak to naprawić w pug
?
Należy zauważyć, że próbowałem wszystkich następujących przy użyciu pug
, ale żadna z tych opcji nie zadziałała.
a(href="/admin/rooms/delete/#{room.id}") Delete
a(href!="/admin/rooms/delete/#{room.id}") Delete
Dzięki za pomoc, niestety to nie działa dla mnie. Chociaż działało to na stronie jade-lang, to nie działa w mojej aplikacji Express z uruchomionym 'mopsem' jako 'mechanizmem widoku '. Myślę, że działało na stronie jade-lang, ponieważ w rzeczywistości używa 'jade', a nie' mopsa '. – Corey
Czy przeczytałeś [dziennik zmian Pug 2.0] (https://github.com/pugjs/pug/issues/2305)? – pdoherty926
Po sprawdzeniu listy zmian, tak jak zasugerowałeś, wymyśliłem to ... Zmieniłem link zakotwiczenia na 'a (href ="/admin/rooms/delete/"+ room.id) Delete" i działało. Dzięki za pomoc, doceniam to. Czy możesz edytować swoją odpowiedź, dodając poprawny kod? Jeśli tak, zaznaczę poprawną odpowiedź. – Corey