Express + Jade:渲染部分数组

时间:2014-11-27 10:19:18

标签: javascript node.js express pug partials

我有部分button,如下所示:

.button button.custom_button(type='button', value='', onclick=#{functionName}) #{functionName}

我借助来自res.renderPartials的{​​{1}}函数渲染部分内容。

我想根据用户请求呈现它。所以我有控制器方法,如:

npm install express-partial

问题: 如何一次渲染所有按钮部分?平均传递数组到var express = require('express'); var router = express.Router(); router.get('/buttons', function(req, res) { var funcs = ['func1();', 'func2();', 'func3()', .... ]; // where funcs.length > 15 res.renderPartials({ // PROBLEM #1: how to make this in a loop // PROBLEM #2: why do it returns only the func[28] rendering result 'partials/button': {functionName: funcs[0]}, 'partials/button': {functionName: funcs[1]}, .......... 'partials/button': {functionName: funcs[28]}, }); }); 并避免遇到以逗号分隔的每个按钮。

P.S。我认为这是可能的,因为在Jade模板中我们可以这样做:

res.renderPartials

示例取自here

1 个答案:

答案 0 :(得分:0)

我虽然在我的情况下我们可以使用嵌入式部分,比如

buttons.jade

- each func in #{functions}
   !=partial('partials/button', {functionName:func})

button.jade

.button button.custom_button(type='button', value='', onclick=#{functionName}) #{functionName}

路由器

var express = require('express');
var router = express.Router();

router.get('/buttons', function(req, res) {
    res.renderPartials({    
        'partials/buttons': {functions: ['func1();', 'func2();', 'func3()', .... ]}
    });
});