試圖更好地理解數據上下文如何在Meteor中工作,因爲我無法弄清楚我面臨的這個問題。沒有在任何地方找到明確的答案。我有以下模板模板vs幫助器中的流星數據上下文
<template name="list">
{{#each listItem}}
{{> listItemDetail}}
{{/each}}
</template>
<template name="listItemDetail">
<p>{{_id}} {{title}}</p>
<p>{{idViaHelper}}</p>
</template>
而且在我的JavaScript我有
Template.list.helpers({
'listItem':() => {
return List.find().fetch();
})
Template.listItemDetail.helpers({
'idViaHelper':() => {
return this._id
})
至於我的內流星雲數據上下文的理解,使用#each
設定了listItemDetail
模板的每個實例上下文是從listItem
助手返回的文檔。
而且,我在使用模板中的{{_id}}
時會發生這種情況,因爲它顯示文檔的ID。
但如果我試圖通過幫助{{idViaHelper}}
使用this._id
獲得相同的_id
,我得到undefined
。當我嘗試console.log(this)
時,它表明this
指的是Window對象。但我不知道爲什麼。發生了什麼以及爲什麼數據上下文無法在模板助手中找到?
這是我的第一篇文章,感謝您的幫助!
感謝朱利安。我認爲箭頭函數純粹是ES2015中的一個語法變化(舊的聲明函數的方式將被棄用),但我想如果兩者存在技術差異和用途,那麼他們可能都會堅持下去。 – TL77