如何访问 Handlebars.js 数组中的最终元素?

Posted

技术标签:

【中文标题】如何访问 Handlebars.js 数组中的最终元素?【英文标题】:How to access final element in Handlebars.js array? 【发布时间】:2019-03-24 22:43:18 【问题描述】:

给定以下数据结构:


    "name" : "test",
    "assetType" : "Home",
    "value" : [ 
        
            "value" : "999",
            "date" : "10/03/2018"
        , 
        
            "value" : "1234.56",
            "date" : "10/04/2018"
        
    ]

如何在 Handlebars 中直接访问 value 的第一个和最后一个元素?我的代码是:

<td>value.[0].value</td>
<td>value.[value.length - 1].value</td>

第一个语句工作正常,但我不知道如何访问最后一个元素。 [] 内的 value.length 不返回任何值,但在数组外渲染 value.length 工作正常。

我尝试在数组中使用@first@last,但它们似乎也不起作用。

【问题讨论】:

你需要创建一个辅助函数。看看这是否有帮助:***.com/questions/11479094/… 【参考方案1】:

正如已经指出的,您可以使用template helper 轻松解决此问题:

Template.myTemplate.helpers(
  first (arr) 
    return arr && arr[0]
  ,
  last (arr) 
    return arr && arr[arr.length - 1]
  ,
  atIndex (arr, index) 
    return arr && index >= 0 && index <= arr.length - 1 && arr[index]
  
)

然后您可以使用#with 创建一个context,其中上下文对象是助手的结果。在此上下文中,您可以使用 this 访问属性。

访问名称为 value 的值如下所示:

<td>#with first valuethis.value/with</td>
<td>#with last valuethis.value/with</td>
<td>#with atIndex value 5this.value/with</td>

【讨论】:

以上是关于如何访问 Handlebars.js 数组中的最终元素?的主要内容,如果未能解决你的问题,请参考以下文章

使用 handlebars.js 模板以数组中的最后一项为条件

handlebars 遍历数组判断是不是含有字符

Django 模板中的 Handlebars.js

使用#each 显示handlebars.js 中的一些数据不显示

markdown 在使用AJAX呈现的Handlebars.js模板文件上显示平面JSON文件中的数据。

spring mvc框架中引入handlebars插件