So che utilizza un modello è possibile visualizzare più documenti con i loro attributi come:Con un modello come usare {{attribute}} con un 'record' rispetto a #each usando un cursore find()?
// html
<template name="hello">
{{#each greetings}}
{{message}}
{{/each}}
</template>
// js
Template.hello.greetings = function() {
return Greetings.find();
}
Che mostra Greeting.message per ogni saluto documento trovato.
La mia domanda è come utilizzare questo modello per un solo documento? messaggio non può leggere la proprietà': (. incl nessun documento disponibile)
da JavaScript lato vorrei usare qualcosa come return Greetings.findOne({'id' : Session.get("greeting_id")});
Ma quando si utilizza il modello:
<template name="hello">
{{message}}
</template>
viene generato un errore: TypeError Uncaught 'undefined
UPDATE
Per ora io uso questo sul lato JS, utilizzando il modello come suggerito da @ tom-wij sman di seguito:
Template.hello.greeting = function() {
var greeting = Greetings.findOne({'id' : Session.get("greeting_id")})
if (greeting)
return greeting;
return {message: ""};
}
_Bedankt_ // Sì ho pensato che questo appena fuori me stesso. Il problema che rimane da superare è quando il template viene reso quando findOne restituisce {}. Ho risolto il problema restituendo {greeting: ''} in questo caso, vedi il mio aggiornamento nella domanda. –
@ MichelLöhr: Se vuoi dare una mano breve che potresti fare 'return greeting? saluto: {messaggio: ""}; 'ma probabilmente vuoi verificare se c'è effettivamente un saluto, forse' {{#if saluto}} {{/ se saluto}} 'attorno ad esso potrebbe funzionare come alternativa; Non l'ho provato, ma potrebbe ... –
Grazie per il suggerimento! –