如何访问 Handlebars.js 数组中的最终元素?
How to access final element in Handlebars.js array?
给定以下数据结构:
{
"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
没有 return 任何值,但在数组外呈现 value.length
工作正常。
我尝试在数组中使用 @first
和 @last
,但它们似乎也不起作用。
如前所述,您可以使用 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 value}}{{this.value}}{{/with}}</td>
<td>{{#with last value}}{{this.value}}{{/with}}</td>
<td>{{#with atIndex value 5}}{{this.value}}{{/with}}</td>
给定以下数据结构:
{
"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
没有 return 任何值,但在数组外呈现 value.length
工作正常。
我尝试在数组中使用 @first
和 @last
,但它们似乎也不起作用。
如前所述,您可以使用 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 value}}{{this.value}}{{/with}}</td>
<td>{{#with last value}}{{this.value}}{{/with}}</td>
<td>{{#with atIndex value 5}}{{this.value}}{{/with}}</td>