【问题标题】:how to display table using handlebars with array of Object如何使用带有对象数组的把手显示表格
【发布时间】:2018-03-30 08:37:24
【问题描述】:

我使用车把作为模板引擎使用 express-generator 创建了一个 Web 应用程序。如果我从响应中显示对象数组,它会显示。但是,当我在视图中的每个循环都没有显示任何内容时。

/********************************
model file ../controllers/books.js
*********************************/
var request = require('request');

exports.list = function(req, res, next){

  request.get({ url: "https://jsonplaceholder.typicode.com/posts" },      function(error, response, body) { 
               if (!error && response.statusCode == 200) { 
                    res.render('index', { title: 'speed Tracker', list: body });     
                  } 
              });


};
  /***********************
route file 
************************/
var express = require('express');
var router = express.Router();

var books = require('../controllers/books'); 
/* GET home page. */
router.get('/', books.list);

<!-- language: lang-html -->

                      <table id="datatable" class="table table-striped table-bordered">
                           <thead>
                               <tr>
                                   <th>ID</th>
                                   <th>Album Id</th>
                                   <th>title</th>
                                   <th>url</th>
                                   <th>image</th>
                               </tr>
                           </thead>
                          {{list}}
                           <tbody>
                              {{#each list}}
                               <tr>
                                   <td>{{id}}</td>
                                   <td>{{userId}}</td>
                                   <td>{{title}}</td>
                                   <td>{{body}}</td>
                                   <td></td>
                               </tr>
                               {{/each}}
                           </tbody>
                       </table>
json of list

[ { “用户ID”:1, “身份证”:1, "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit", “body”:“quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto” }, { “用户ID”:1, “身份证”:2, "title": "qui est esse", “身体”:“est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla” }, {.....

我在上面添加了代码,数据不是在每个循环中显示的。

【问题讨论】:

  • 对象数组的每个循环都不起作用
  • 我在每个循环中都尝试了这个和没有这个,但都失败了
  • 我在该代码中使用了 {{#each list}},list 是一个对象数组。我需要建表。
  • 您的{{#each}} 语法有效。您能否提供一个传递给车把的示例list 数据?另外,我注意到一件事:您的&lt;img src="" &gt; 中缺少引号。什么是this.body 格式?

标签: javascript node.js handlebars.js express-generator


【解决方案1】:

我必须在 book.js 文件中将列表从字符串转换为对象。我已经添加了下面的代码。

var request = require('request');

exports.list = function(req, res, next){

  request.get({ url: "https://jsonplaceholder.typicode.com/posts" },      function(error, response, body) { 
               if (!error && response.statusCode == 200) { 
                    res.render('index', { title: 'speed Tracker', list: JSON.parse(body) });     // add JSON.parse to convert string to object :)
                  } 
              });


};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-04
    • 2023-03-15
    • 1970-01-01
    • 2021-09-30
    • 2017-12-10
    • 2021-10-30
    • 2016-11-24
    相关资源
    最近更新 更多