gpt4 book ai didi

javascript - 简单的嵌套 Handlebars foreach 不起作用

转载 作者:行者123 更新时间:2023-12-03 06:03:29 28 4
gpt4 key购买 nike

这是在节点中。

   app.get('/payees', function(req, res)
{
var categoriesPromise = Category.getAllCategories();
var payeesWhereNullPromise = categoriesPromise.then(function() {
return Payee.getAllPayeesWhere({categoryId:null})
})
payeesWhereNullPromise.then(function(payees) {
var categories = categoriesPromise.value();
res.render('payees', {categories: categories, subcategories: [], payees:payees});
})
});

这是在前端

{{#each payees as |payee|}}
{{#each categories as |category|}}
category.name
{{/each}}
{{/each}}

如果我单独做它们,它们会完美地工作,但是当我将它们放入彼此内部时,什么也不会发生。

最佳答案

您只能访问在#each 中循环的数组的属性。使用示例中的嵌套 foreach 时,您会遇到 Handlebars 尝试在 payees 数组中查找 categories 作为对象属性的问题。但在您的情况下,categories 是一个全局变量,因此不会被发现。

但是您可以使用 Handlebars 辅助函数执行您想要的操作。

编辑:这是使用 Handlebars 辅助函数的示例。

模板:

 {{#list categories payees}}{{/list}}

节点服务器代码:

var hbs = require('hbs');
hbs.registerHelper('list', function(categories, payees, options) {
var out = "";
// Here you can use standard JavaScript to do whatever you want.
// Also nested loops are possible.
// Put the wished HTML into the out variable and it will get rendered
// in your template.
for (var i = 0; i < categories.length; i++) {
out += "<div>"+categories[i]+"</div>";
for (var j = 0; j < payees.length; j++) {
// and so on
}
}
return out;
});

文档:https://github.com/pillarjs/hbs http://handlebarsjs.com/

关于javascript - 简单的嵌套 Handlebars foreach 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39645508/

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