gpt4 book ai didi

node.js - 使用 Bookshelf.JS 将数组传递到 EJS View

转载 作者:太空宇宙 更新时间:2023-11-04 02:32:55 25 4
gpt4 key购买 nike

我的逻辑:

/* GET /events/list */
router.get('/events/list', function(req, res) {

new db.Tag({})
.fetchAll()
.then(function(tags) {

res.locals.title = "List of events";
res.locals.tags = tags;
res.render('events/list.ejs');
});
});

我的看法:

<% for (var tag in tags) { %>
<div class="checkbox">
<label>
<input type="checkbox" data-tag-id="<%= tag.tagId %>" />
<%= tag.name %>
</label>
</div>
<% } %>

我得到了什么:

 [x] undefined
[x] undefined
[x] undefined
[x] undefined

我应该得到什么:

 [x] foo
[x] bar
[x] zort
[x] troz

我也尝试通过

 res.locals.tags = tags.toJSON();

还有

 res.locals.tags = JSON.stringify(tags);

那么..我如何最终将我的集合传递到 EJS View ?

我还在 then(function(tags) 之后记录了 (console.log(tags)),并且我正确地获取了模型(在本例中为标签)。

我还在我的 EJS View 中尝试了tags.forEach,但是像这样的原生 JavaScript 数组:[{tagId:1, name:"blah"}, {tagId:2, name"Foo"}] 没有实现“forEach”方法

最佳答案

在模板中,使用 forEach(如果可用)或使用索引进行循环。

server.js

res.locals.tags = tags.toJSON();

view.html(使用[].forEach)

<% tags.forEach(function(tag) { %>
<div class="checkbox">
<label>
<input type="checkbox" data-tag-id="<%= tag.tagId %>" />
<%= tag.name %>
</label>
</div>
<% }) %>

view.html(带索引)

<% for (var i in tags) { %>
<div class="checkbox">
<label>
<input type="checkbox" data-tag-id="<%= tags[i].tagId %>" />
<%= tags[i].name %>
</label>
</div>
<% } %>

关于node.js - 使用 Bookshelf.JS 将数组传递到 EJS View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24961921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com