/ / Użyj jade mixin wewnątrz bloku kodu - node.js, express, pug

Użyj jade mixin wewnątrz bloku kodu - node.js, express, mops

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 № 1

najł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))