Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Template onload event for meteor.js

Tags:

I know meteor exposes events such as "click", for DOM element but I'm wondering if there's a load event that's fired when a template or partial is loaded? How would I accomplish this?

Thanks.

like image 610
Gezim Avatar asked Jun 23 '12 06:06

Gezim


2 Answers

For Meteor starting from 0.4.0 preview, you can use Template.myTemplate.created.

In Template.myTemplate.created the DOM is not ready however.

If you need to manipulate the DOM, you might want to use Template.myTemplate.rendered instead and use a boolean value to track the state within the Template object like this:

Template.myTemplate.rendered = function() {     if(!this._rendered) {       this._rendered = true;       console.log('Template onLoad');     } } 
like image 84
Joscha Avatar answered Jan 03 '23 10:01

Joscha


Following should work.
Meteor.defer will get called once template is added to DOM and rendered.

<template name="temp">     //regular stuff     {{invokeAfterLoad}} </template>  Template.temp.invokeAfterLoad = function () {   Meteor.defer(function () {      $('mydiv').jquerify();   });   return ""; }; 
like image 33
Nachiket Avatar answered Jan 03 '23 09:01

Nachiket