【问题标题】:How can I assign an array that I received from another file to another array?如何将从另一个文件收到的数组分配给另一个数组?
【发布时间】:2016-08-25 07:20:48
【问题描述】:

每当我从另一个文件收到一个数组时,我所能做的就是显示整个数组。我无法显示特定元素或将其分配给另一个数组。我在下面发布了一些代码。

下面是我用来运行节点的 .js 文件。这是发送数组的那个。

var titles = [1,2,3,4];
var descriptions = [5,6,7,8];
var dates = [9,10,11,12];
var file_names = [13,14,15,16];

app.get('/home', function(req, res) {
res.render('home', { postTitles: titles, postDescriptions: descriptions, postDates: dates, postFileNames: file_names });
});

这是接收数组的 home.handlebars

var myTitles = {{postTitles}};
var myDescriptions = {{postDescriptions}};
var myDates = {{postDates}};
var myFileNames = {{postFileNames}};

【问题讨论】:

  • 显示整个数组因为您将整个数组传递给render 函数。如果只想显示一个元素,则必须将该特定元素传递给 render 函数。
  • @BlazeSahlzen 好的,但是如何将数组分配给另一个数组?我试过 var myTitles = {{postTitles}};但它不起作用
  • 您似乎对模板的工作方式有错误的想法。模板只是没有数据的html+css结构。 render 函数的工作是生成网页。这是通过将数据放入模板文件(并将其提供给客户端)来完成的。没有在模板中进行数据处理。它在调用render 函数之前完成。
  • @BlazeSahlzen 对不起,我对网络编程很陌生,你会建议我如何显示数组中的内容?请记住,数组的大小和内容会发生变化。
  • 只有一个问题:您是否要从服务器端获取整个阵列并将其放入前端 <script> 标记中?

标签: javascript html node.js express handlebars.js


【解决方案1】:

从节点后端渲染车把模板中数组的方法:

  1. 如果要显示整个数组,则使用 #each 帮助器。

  2. 如果只需要显示一个数组元素,则只将那个元素传递给模板(有或没有#with 帮助器)。

例子:

app.get('/home', function(req, res) {

  var myArray = [1, 2, 3, 4, 5];

  res.render('home', {

    theArray: myArray[0]

  });

});
  1. 大多数情况下,AJAX 调用用于将数据从服务器动态请求到前端。这是首选方式,也是所有移动和网络应用程序中使用的 REST API 的基础。

  2. 也可以简单地对服务器端数组进行字符串化并将其推送到<script>标签中:

车把模板:

...

<script type="text/javascript">

    var myArray = {{theArray}};

    // here use myArray to do whatever processing is needed

</script>

...

服务器端代码:

app.get('/home', function(req, res) {

  var myArray = [1, 2, 3, 4, 5];

  var jsonString = JSON.stringify(myArray);

  res.render('home', {

    theArray: jsonString

  });

});

据我所知,这是最不受欢迎的方法。但它可以完成工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    • 2014-07-14
    • 2018-08-22
    • 1970-01-01
    相关资源
    最近更新 更多