如何访问 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 模板以数组中的最后一项为条件
使用#each 显示handlebars.js 中的一些数据不显示