Sé que el meteorito expone eventos como "clic", para elemento DOM pero me pregunto si hay un evento de carga que se activa cuando se carga una plantilla o parcial. ¿Cómo podría lograr esto?Evento de carga de plantilla para meteor.js
Gracias.
Sé que el meteorito expone eventos como "clic", para elemento DOM pero me pregunto si hay un evento de carga que se activa cuando se carga una plantilla o parcial. ¿Cómo podría lograr esto?Evento de carga de plantilla para meteor.js
Gracias.
Para Meteor a partir de la vista previa de 0.4.0, puede usar Template.myTemplate.created
.
En Template.myTemplate.created
, el DOM no está listo.
Si necesita manipular el DOM, es posible que desee utilizar Template.myTemplate.rendered
lugar y utilizar un valor booleano para realizar el seguimiento del estado dentro del objeto plantilla así:
Template.myTemplate.rendered = function() {
if(!this._rendered) {
this._rendered = true;
console.log('Template onLoad');
}
}
El siguiente debería funcionar.
Se llamará Meteor.defer una vez que la plantilla se haya agregado a DOM y se haya procesado.
<template name="temp">
//regular stuff
{{invokeAfterLoad}}
</template>
Template.temp.invokeAfterLoad = function() {
Meteor.defer(function() {
$('mydiv').jquerify();
});
return "";
};
Lo recomendaría este lugar de la respuesta aceptada, un poco menos en mi humilde opinión bruto:
<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();
});
};
La suposición es que desea invocar algo después de las cargas de la plantilla, ya que está reaccionando a un objeto reactiva .
El beneficio aquí es que no está agregando código de animación a su plantilla.
esta es prácticamente la misma respuesta que una Nachiket – Octopus
'Template.myTemplate.rendered' está en desuso desde Meteor 1.0.4. Si bien todavía es compatible con la compatibilidad con versiones anteriores, es posible que desee utilizar 'Template.myTemplate.onRendered' para las versiones más recientes. [Fuente] (https://github.com/meteor/meteor/blob/devel/History.md#blaze-2) – Iwazaru