首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Express-Handlebars是否将数组的数组合并为一个字符串?

Express-Handlebars是否将数组的数组合并为一个字符串?
EN

Stack Overflow用户
提问于 2021-03-01 03:53:36
回答 1查看 61关注 0票数 0

你能帮帮忙吗,这太奇怪了..

我有一个自定义类,它包含多个属性,其中一个是数组数组。

我知道数据结构是好的,因为我可以将它转储到console.log中,而app.send()会在我的浏览器中生成一个格式良好的数组。

奇怪的是,当我尝试呈现它时,数据浏览器是正确的,它不再是数组的数组,它根本不是一个数组,而是一个逗号分隔的字符串……

所以从

代码语言:javascript
复制
[[day,1,2,3],[day,1,2,3],[day,1,2,3]]

代码语言:javascript
复制
day,1,2,3,day,1,2,3,day,1,2,3

就连外部数组也不见了。

有什么想法吗?是不是我错过了什么场景?

提前谢谢你,鲍勃。

使用一些代码更新..app.js

代码语言:javascript
复制
    app.set('view engine', 'hbs');
    app.engine('hbs', hbs({
         extname: 'hbs',
         defaultLayout: 'layout',
         layoutsDir: __dirname + '/views/layouts/',
         partialsDir: __dirname + '/views/partials/',
         helpers:{
              json: function (context){return JSON.stringify(context); }
              }
         }));
    app.set('views', path.join(__dirname, 'views'));

index.js

代码语言:javascript
复制
    class myClass{
       Name    = '';
       Stats   = [];
       constructor(name){
            this.Name = name;
            }
       }

    router.get('/', function(req,res,next){
       let tmp = new myClass('Dan');
       let i;
       for(i = 0; i < 4; i++){
           tmp.Stats.push('day',1,2,3);
           }
       console.log(tmp.Stats);
       // res.send(tmp);
       res.render('index', { title: 'Test Data', data: tmp });
       });

结果如上所述,console.log和res.send都遵循数组结构,但render将其剥离为字符串。?

幸运的是,数组的大小是固定的,所以我可以在一个块中重新构建它,但我宁愿知道我做错了什么,首先导致了这个问题。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-03-01 06:44:00

使用上面的代码,您不是在创建一个数组数组,实际上是在创建一个有16个元素的平面数组。如果你想在每次迭代中推入一个数组,你需要这样做:

代码语言:javascript
复制
for (i = 0; i < 4; i++) {
    tmp.Stats.push(['day', 1, 2, 3]);
}

在您的模板中,您可以访问数据并执行以下操作:

代码语言:javascript
复制
<% for(let currStat of data.Stats) { %>
    <ul>
        <% for(let entry of currStat) { %>
            <li>
                <%= entry %>
            </li>
        <% } %>
    </ul>
<% } %>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66413261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档