如何使用带有对象数组的把手显示表格

Posted

技术标签:

【中文标题】如何使用带有对象数组的把手显示表格【英文标题】: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 格式? 【参考方案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 :)
                   
              );


;

【讨论】:

以上是关于如何使用带有对象数组的把手显示表格的主要内容,如果未能解决你的问题,请参考以下文章

如何使用把手 (hbs) 迭代嵌套数组和对象?

如何使用react js以表格格式显示对象数据数组

带有对象数组的 UITableView

如何在表格行中显示对象数组

带有空单元格的表格视图

如何发送带有对象数组的多个数组发送到android