簡體   English   中英

meteor.js的模板onload事件

[英]Template onload event for meteor.js

我知道meteor暴露了諸如“click”之類的事件,對於DOM元素,但是我想知道在加載模板或部分時是否有一個加載事件被觸發了? 我怎么做到這一點?

謝謝。

對於從0.4.0預覽開始的Meteor,您可以使用Template.myTemplate.created

然而,在Template.myTemplate.created ,DOM尚未就緒。

如果需要操作DOM,可能需要使用Template.myTemplate.rendered並使用布爾值來跟蹤Template對象中的狀態,如下所示:

Template.myTemplate.rendered = function() {
    if(!this._rendered) {
      this._rendered = true;
      console.log('Template onLoad');
    }
}

以下應該工作。
一旦將模板添加到DOM並進行渲染,就會調用Meteor.defer。

<template name="temp">
    //regular stuff
    {{invokeAfterLoad}}
</template>

Template.temp.invokeAfterLoad = function () {
  Meteor.defer(function () {
     $('mydiv').jquerify();
  });
  return "";
};

我推薦這個而不是接受的答案,稍微不那么粗略恕我直言:

<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();
  });
};

假設您希望在模板加載后調用某些內容,因為它會對反應對象做出反應。

這里的好處是您不會在模板中添加動畫代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM