Essayer de mieux comprendre comment les contextes de données fonctionnent dans Meteor, car je ne peux pas comprendre ce problème auquel je suis confronté. Je n'ai pas trouvé de réponse claire nulle part. Je les modèles suivantsContexte des données Meteor dans les modèles et les assistants
<template name="list">
{{#each listItem}}
{{> listItemDetail}}
{{/each}}
</template>
<template name="listItemDetail">
<p>{{_id}} {{title}}</p>
<p>{{idViaHelper}}</p>
</template>
Et dans mon Javascript j'ai
Template.list.helpers({
'listItem':() => {
return List.find().fetch();
})
Template.listItemDetail.helpers({
'idViaHelper':() => {
return this._id
})
En ce qui concerne ma compréhension des contextes de données dans va Meteor, en utilisant #each
définit le contexte pour chaque instance du modèle listItemDetail
à être un document renvoyé par l'assistant listItem
.
Et cela fonctionne comme je m'attendais quand il s'agit d'utiliser {{_id}}
dans le modèle listItemDetail
, montrant l'ID du document.
Mais si j'essaie d'obtenir le même _id
via un assistant {{idViaHelper}}
qui utilise this._id
, j'obtiens undefined
. Quand j'essaye console.log(this)
, il me montre que this
fait référence à l'objet Window. Mais je n'ai aucune idée pourquoi. Que se passe-t-il et pourquoi le contexte de données n'est-il pas détecté dans l'assistant de modèle?
Ceci est mon premier message, merci pour votre aide!
Merci Julien. Je pensais que les fonctions fléchées étaient purement un changement syntaxique dans ES2015 (et l'ancienne façon de déclarer les fonctions serait obsolète), mais je suppose que s'il y a une différence technique et une utilisation pour les deux, peut-être qu'ils resteront tous les deux. – TL77