如何获取数组的内容以反映在我的模板中?
How do I get the contents of an Array to reflect in my template?
我的 return db.Collection.find().fetch() 游标正确反映了模板中的所有元素,数组中的元素除外。
如何让数组的内容反映在我的模板中?
以下是在浏览器控制台中看到的 db.Collection.find().fetch() 结果。
_id: "CJiuk6jjFEBLDQrQc"
postedDate: Wed Feb 15 2017 15:10:50 GMT+0300 (EAT)
descriptions: "Clothes"
viewStatisticsArray: Array[1]
在控制台中展开时,在 viewStatisticsArray: Array[1] 元素下方找到。
0: Object
nrOfViews: 3096
statsDate: "Tue Mar 07 2017 14:10:56 GMT+0300 (EAT)"
还有我的模板函数:
'list': function(){
return buyList.find({}).fetch();
}
在我的模板中找到以下结果:
{{#each list}}
Posted Date: {{postedDate}} displays: Wed Feb 15 2017 15:10:50 GMT+0300 (EAT)
Description: {{descriptions}} displays: Clothes
View Stats: {{viewStatisticsArray.nrOfViews}} {{viewStatisticsArray.statsDate}} FAILS to DISPLAY ANYTHING
{{/each}}
如何正确访问 viewStatisticsArray
数组的元素?
期待您的帮助。
{{#each items}}
<div>{{postedDate}}</div>
<div>{{description}}</div>
<div>
{{#each viewStatisticsArray}}
{{nrOfViews}}
{{statsDate}}
{{/each}}
</div>
{{/each}}
@SirBT 不确定你是如何进行迭代的,但上面的方法肯定有效。如果不是,唯一的原因可能是 viewStatisticsArray
没有被您的发布函数发送。
您可以尝试调用助手以您想要的任何方式访问数组。
如果您只是想获取一个字符串:
View Stats: {{getStats viewStatisticsArray}}
js:
'getStats': function(array){
return array[0].nrOfViews + " " + array[0].statsDate;
}
(如果您需要,请分别编写两个助手。)您也可以使用 server transform 更改服务器端的光标。
Meteor.publishTransformed('subName', function () {
return db.Collection.find({})
.serverTransform({
statsObj : function(item){
return item.viewStatisticsArray[0]
}
}
});
现在您实际上已经将数组变成了一个对象,并且可以像在模板 statsObj.nrOfView
s 和 statsObj.statsDate
.
中那样调用它
我的 return db.Collection.find().fetch() 游标正确反映了模板中的所有元素,数组中的元素除外。
如何让数组的内容反映在我的模板中?
以下是在浏览器控制台中看到的 db.Collection.find().fetch() 结果。
_id: "CJiuk6jjFEBLDQrQc"
postedDate: Wed Feb 15 2017 15:10:50 GMT+0300 (EAT)
descriptions: "Clothes"
viewStatisticsArray: Array[1]
在控制台中展开时,在 viewStatisticsArray: Array[1] 元素下方找到。
0: Object
nrOfViews: 3096
statsDate: "Tue Mar 07 2017 14:10:56 GMT+0300 (EAT)"
还有我的模板函数:
'list': function(){
return buyList.find({}).fetch();
}
在我的模板中找到以下结果:
{{#each list}}
Posted Date: {{postedDate}} displays: Wed Feb 15 2017 15:10:50 GMT+0300 (EAT)
Description: {{descriptions}} displays: Clothes
View Stats: {{viewStatisticsArray.nrOfViews}} {{viewStatisticsArray.statsDate}} FAILS to DISPLAY ANYTHING
{{/each}}
如何正确访问 viewStatisticsArray
数组的元素?
期待您的帮助。
{{#each items}}
<div>{{postedDate}}</div>
<div>{{description}}</div>
<div>
{{#each viewStatisticsArray}}
{{nrOfViews}}
{{statsDate}}
{{/each}}
</div>
{{/each}}
@SirBT 不确定你是如何进行迭代的,但上面的方法肯定有效。如果不是,唯一的原因可能是 viewStatisticsArray
没有被您的发布函数发送。
您可以尝试调用助手以您想要的任何方式访问数组。 如果您只是想获取一个字符串:
View Stats: {{getStats viewStatisticsArray}}
js:
'getStats': function(array){
return array[0].nrOfViews + " " + array[0].statsDate;
}
(如果您需要,请分别编写两个助手。)您也可以使用 server transform 更改服务器端的光标。
Meteor.publishTransformed('subName', function () {
return db.Collection.find({})
.serverTransform({
statsObj : function(item){
return item.viewStatisticsArray[0]
}
}
});
现在您实际上已经将数组变成了一个对象,并且可以像在模板 statsObj.nrOfView
s 和 statsObj.statsDate
.