/ / Използвайте jade mixin вътре в кода блок - node.js, express, мопс

Използвайте jade mixin вътре в кодовия блок - node.js, express, pug

Има ли начин да се използва нефрит mixin вътре JavaScript code block?

Имам следващ случай на употреба:

mixin YYYYMMDD(date)
= date.getFullYear() + "-"
= ("0" + (date.getMonth() + 1)).slice(-2) + "-"
= ("0" + date.getDate()).slice(-2)

Така че трябва да използвам този миксин вътре

input(
value=YYYYMMDD(date)
)

Update: Трябваше да преработя тези миксини в js функции, така че изглежда подобно на следното:

- function YYYYMMDD(date)
- var flDate = date.getFullYear() + "-";
- flDate += ("0" + (date.getMonth() + 1)).slice(-2) + "-";
- flDate += ("0" + date.getDate()).slice(-2);
- return flDate;

Отговори:

2 за отговор № 1

най-лесният начин е да напишете този код на вашия сървър, след което можете да използвате и друг синтаксис, например coffeescript или дори по-добре в този случай, някои библиотеки като момент

Когато визуализирате шаблона си, просто добавяте помощен обект към местните си потребители:

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});
});

и в шаблона си можете просто да го наречете

input(value=helpers.YYYYMMDD(date))