Czy istnieje sposób użycia jade mixin wewnątrz blok kodu javascript?
Mam następny przypadek użycia:
mixin YYYYMMDD(date)
= date.getFullYear() + "-"
= ("0" + (date.getMonth() + 1)).slice(-2) + "-"
= ("0" + date.getDate()).slice(-2)
Więc muszę użyć tego miksu w środku
input(
value=YYYYMMDD(date)
)
Aktualizacja: Musiałem przerobić te miksy na funkcje js, więc wygląda to podobnie do następnego:
- function YYYYMMDD(date)
- var flDate = date.getFullYear() + "-";
- flDate += ("0" + (date.getMonth() + 1)).slice(-2) + "-";
- flDate += ("0" + date.getDate()).slice(-2);
- return flDate;
Odpowiedzi:
2 dla odpowiedzi № 1najłatwiejszym sposobem jest napisanie tego kodu na swoim serwerze, wtedy możesz także użyć innej składni, na przykład coffeescript lub jeszcze lepiej w tym przypadku, niektóre biblioteki lubią moment
Gdy renderujesz szablon, po prostu dodajesz obiekt pomocniczy do swoich mieszkańców:
var moment = require("moment");
var YYYYMMDD = function(date) {
return moment(date).format("YYYYMMDD");
}
// express code
app.get("/test", function(req, res, next) {
var locals = getLocalsForTest();
locals.helpers = {
YYYYMMDD: YYYYMMDD
};
res.render("template.jade", {locals: locals});
});
w twoim szablonie możesz to po prostu nazwać
input(value=helpers.YYYYMMDD(date))