Ich weiß Meteor macht Ereignisse wie "Klick", für DOM-Element, aber ich frage mich, ob es ein Load-Ereignis, das ausgelöst wird, wenn eine Vorlage oder teilweise geladen ist? Wie würde ich das erreichen?Template-Onload-Ereignis für meteor.js
Danke.
Ich weiß Meteor macht Ereignisse wie "Klick", für DOM-Element, aber ich frage mich, ob es ein Load-Ereignis, das ausgelöst wird, wenn eine Vorlage oder teilweise geladen ist? Wie würde ich das erreichen?Template-Onload-Ereignis für meteor.js
Danke.
Für Meteor ab 0.4.0 Vorschau können Sie Template.myTemplate.created
verwenden.
In Template.myTemplate.created
ist das DOM jedoch nicht bereit.
Wenn Sie das DOM manipulieren müssen, möchten Sie vielleicht Template.myTemplate.rendered
stattdessen verwenden und einen Booleschen Wert verwenden den Status innerhalb des Template-Objekt wie folgt verfolgen:
Template.myTemplate.rendered = function() {
if(!this._rendered) {
this._rendered = true;
console.log('Template onLoad');
}
}
Folgendes sollte funktionieren.
Meteor.defer wird aufgerufen, sobald Vorlage zu DOM hinzugefügt und gerendert wird.
<template name="temp">
//regular stuff
{{invokeAfterLoad}}
</template>
Template.temp.invokeAfterLoad = function() {
Meteor.defer(function() {
$('mydiv').jquerify();
});
return "";
};
ich dies eher als die akzeptierte Antwort würde empfehlen, etwas weniger grob IMHO:
<template name="temp">
{{aReactiveHelper}}
</template>
Template.temp.aReactiveHelper = function() {
var someValue = Session.get('someValue');
invokeAfterLoad();
return someValue;
};
var invokeAfterLoad = function() {
Meteor.defer(function() {
$('mydiv').doSomething();
});
};
Die Annahme ist, dass Sie etwas, nachdem die Vorlage Lasten aufrufen wollen, weil es zu einem reaktiven Objekt reagieren ist .
Der Vorteil hier ist, dass Sie Ihrer Vorlage keinen Animationscode hinzufügen.
Dies ist praktisch die gleiche Antwort ein Nachikets – Octopus
'Template.myTemplate.rendered' ist seit Meteor 1.0.4 veraltet. Obwohl es aus Gründen der Abwärtskompatibilität weiterhin unterstützt wird, sollten Sie 'Template.myTemplate.onRendered' für neuere Versionen verwenden. [Quelle] (https://github.com/meteor/meteor/blob/devel/History.md#blaze-2) – Iwazaru