0

经过一个小时左右的搜索,我没有找到任何帮助,所以我在这里问(我的问题在第 5 行和第 6 行的第二个代码块中)。我有一个从服务器发送到客户端的对象数组,如下所示:

router.get('/tasks', ensureAuthenticated, function(req, res, next) {
    db.tasks.find({ forUser: req.params.userId }, function (err, tasks) {
        res.render('tasks', { tasks: tasks }); // EACH TASK(obj) FROM TASKS(arr) HAS ITS _id
    });
});

我正在通过把手在客户端上显示这些任务,如下所示:tasks.handlebars

<ul class="list-group">
{{#if tasks}}
    {{#each tasks}}
        <div class="list-group">
            <!-- This is where I got lost, here in this href should be /task/:id -->
            <a href='WHAT GOES HERE?' class="list-group-item list-group-item-action flex-column align-items-start">
                <div class="d-flex w-100 justify-content-between">
                    <h5 class="mb-1">{{title}}</h5>
                    <div class="row" style="padding-left: 25px">
                        <small>From: {{dateCreated}}</small>
                        <small>To: {{deadline}}</small>
                    </div>
                </div>
                <p class="mb-1">{{description}}</p>
            </a>
        </div>
    {{/each}}
{{else}}
    <p>No tasks.</p>
{{/if}}

因此,在每个任务上都应该有一个 onclick 函数在服务器上调用它:

router.get('/task/:id', ensureAuthenticated, function(req, res, next) {
    db.tasks.findOne({_id: mongojs.ObjectId(req.params.id) }, function (err, task) {
        if (err) res.send(err);
        res.json(task);
    }); 
});
4

1 回答 1

0

根据handlebars docs,您不需要if块,每个块都可以跟在同一级别的else后面。乍一看,你想要href="{{this._id}}".

于 2018-01-07T22:29:51.117 回答