5 Stimmen

Mit einer Vorlage, wie man {{attribute}} mit einem 'Datensatz' im Vergleich zu #each unter Verwendung eines find() Cursors verwenden kann?

Ich weiß, dass Sie mit einer Vorlage mehrere Dokumente mit ihren Attributen anzeigen können, wie:

// html

// js
Template.hello.greetings = function() {
   return Greetings.find();
}

Das zeigt Greeting.message für jedes gefundene Dokument an.

Meine Frage ist, wie man diese Vorlage nur für ein Dokument verwendet? (inkl. kein verfügbares Dokument)

Von der JavaScript-Seite aus würde ich etwas wie return Greetings.findOne({'id' : Session.get("greeting_id")}); verwenden.

Aber beim Verwenden der Vorlage:

wird ein Fehler geworfen: Uncaught TypeError: Cannot read property 'message' of undefined

UPDATE

Derzeit verwende ich dies auf der JavaScript-Seite, und verwende die Vorlage wie von @tom-wijsman vorgeschlagen:

Template.hello.greeting = function() {
   var greeting = Greetings.findOne({'id' : Session.get("greeting_id")})
   if (greeting)
       return greeting;
   return {message: ""};
}

8voto

Tamara Wijsman Punkte 12072

Handlebars.js hat auch einen #with Helper.

Template.hello.greeting = function() {
    return Greetings.findOne({'id' : Session.get("greeting_id")});
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X