/ / Meteor Callback auf einer Vorlage rendern - Javascript, Meteor

Meteor-Rückruf auf etwas Schablone übertragen - Javascript, Meteor

In meinem Meteorprojekt habe ich einen Code wie diesen:

baz = function() {
// some jQuery add/remove class here...
};

Template.foo.onRendered(function() {
baz();
});

Template.bar.onRendered(function() {
baz();
});

Template.qux.onRendered(function() {
// no baz() call
});

Gibt es eine bessere Möglichkeit, diese Aufgabe ohne Wiederholung auszuführen? baz(); auf irgendeiner vorlage rendern?

Antworten:

1 für die Antwort № 1

Mit Meteor 1.2.1 können Sie eine globale onRendered () -Funktion über den folgenden Code ausführen:

Template.onRendered(function() {
var that = this; //pass that into baz() if you need it
Deps.afterFlush(function() {
console.log("baz");
baz();
});
});

Wenn das nicht Ihren Bedürfnissen entspricht und Sie es wollenVerwenden Sie auf jeder Seite einfach onRendered () in einer gängigen Vorlage wie dem Menü oder dem Seitenkopf. Dies garantiert jedoch nicht, dass der HTML-Code, den Sie mit JQuery ändern möchten, wiedergegeben wird.


1 für die Antwort № 2

Ähnlich wie bei @Brett answer könnten Sie auch das verwenden Template.body.onRendered(function(){..

Jede onRendered-Funktion wird nur einmal ausgeführtpro Vorlage (beim Laden). Die (implizite) Body-Vorlage, die der Hauptcontainer (Parent) für die anderen Vorlagen (Childs) ist, wird bei jeder Seitenanforderung ausgeführt.