如果有可能,将Jade中的两个字段相乘会很好。以下是我想要完成的事情:
tbody
each item in items
tr
td #{item.sku}
td.text-center #{item.price}
td.text-center #{item.quantity}
//td #{item.quantity} * #{item.price}
// - var totals = {item.price} * {item.quantity};
//td #{totals}
td #{item.quantity} * #{item.price}
尝试了不同的方法,没有人工作。
答案 0 :(得分:4)
我相信这就是你要找的东西:
tbody
each item in items
tr
td #{item.sku}
td.text-center #{item.price}
td.text-center #{item.quantity}
td.text-right= item.quantity*item.price
// - var totalPrice = item.quantity*item.price
// td.text-right #{totalPrice}
// td.text-right #{item.quantity * item.price}
// All three of the above methods work to do what you want to do
有两种方法可以将javascript包含到您的jade模板中,如here所述。
答案 1 :(得分:1)
您可以将乘法函数定义为jade locals的一部分。如果您使用的是快递,则可以使用app.locals
这样的整个应用提供此功能:
<强> app.js:强>
app.locals.multiply = function(a, b) {
return a * b;
};
玉石模板
tbody
each item in items
tr
td #{item.sku}
td.text-center #{item.price}
td.text-center #{item.quantity}
//td #{item.quantity} * #{item.price}
// - var totals = {item.price} * {item.quantity};
//td #{totals}
td #{multiply(item.quantity, item.price)}
或仅限玉石:
var helpers = {
multiply: function(a, b) {
return a * b;
}
}
var fn = jade.compile('string of jade', options);
var html = fn(_.extend(yourModel, helpers));
不,你可能不应该在模板中加入这么多逻辑。计算总计等任务可能属于模型对象。这样做允许您在其他视图中重用它并针对它编写单元测试。