在代码块中使用 jade mixin

Use jade mixin inside code block

有没有办法使用jade mixin inside javascript code block

我有下一个用例:

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

所以我需要在里面使用这个mixin

input(
   value=YYYYMMDD(date)
)

更新: 我不得不将那些 mixins 重新制作为 js 函数,所以它看起来类似于下一个:

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

最简单的方法是,你在服务器上编写这段代码,然后你也可以使用一些其他语法,例如 coffeescript 或者在这种情况下更好,一些库,如 moment

渲染模板时,只需将辅助对象添加到本地即可:

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