[英]Problems deleting a Meteor.js collection using template event listeners
[英]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.