2016-08-30 2 views
0

Ich möchte Variablen verwenden, die sich auf bestimmte Meteor-Templates außerhalb des Template-Bereichs beziehen. Ist das möglich?Verwenden Sie Meteor-Template-Variablen außerhalb von Template-Deklarationen.

Zum Beispiel:

main.html: 
<head> 
<title>{{title}}</title> 
</head> 

<template name="Layout"> 
... layout code ... 
{{> yield content}} 
</template> 

<template name="Home"> 
... code ... 
</template> 

<template name="Page2"> 
... code ... 
</template> 

unter Verwendung von Eisen-Router, eine bestimmte Vorlage zu einem anderen Weg lösen kann. Für jede Route möchte ich, dass sich der Titel entsprechend der Route ändert.

Wenn eine Variable in einer Vorlage aufgelöst wird, wird sie immer noch nicht außerhalb der Vorlage aufgelöst. Das Ergebnis ist, dass der Titel der Seite "{{title}}" lautet.

Antwort

0

Zur Zeit können Sie keine Variablen wie diese außerhalb der Vorlage darstellen. Sie könnten jedoch so etwas tun.

Template.body.onRendered(() => { 
     Tracker.autorun(() => { 
      document.title = Router.current().route.getName(); 
     }); 
    }); 
+0

'onRendered()' hat nicht funktioniert. Wenn ich jedoch 'autorun()' selbst verwende, wird der Seitentitel entsprechend aktualisiert. ... Vielleicht fehlt mir etwas, aber 'getName()' hat auch nicht funktioniert. – user2487593

+0

Ich habe die "Router.current(). Route.getName();" Wie die Dokumente angegeben haben, um die aktuelle Route zu erhalten (siehe Dokumentation: https://github.com/iron-meteor/iron-router) "Der Name einer Route ist nun unter route.getName() abrufbar. Insbesondere" Ich muss Router.current() schreiben. route.getName(). " Ich bin nicht gut vertraut mit Iron Router, wie ich Flow Router für die meisten meiner Projekte verwenden. Aber wenn der Titel mit Tracker.autorun aktualisiert wird, dann gehen Sie in die richtige Richtung. Wenn Sie irgendeine der router.current() -Objekt Stück für Stück console.log Stück zurückgibt gibt es nichts zurück? – NicholasByDesign

Verwandte Themen