流星.js的模板加载事件
Template onload event for meteor.js
我知道 meteor 会为 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();
});
};
假设您希望在模板加载后调用某些内容,因为它正在对反应式对象做出反应。
这样做的好处是无需向模板添加动画代码。
相关文章:
- 召回窗口加载事件 - javascript
- 仅加载事件序列
- cookie加载事件页面重定向
- 正在捕获动态更改其源的图像的加载事件
- 如何从vb.net中的页面加载事件中调用特定的javascript函数
- 在iframe中加载pdf时,iframe未触发加载事件
- 点击加载事件按钮
- jQuery-将加载事件附加到动态加载的元素
- 不;t使用ajax在fullcalender.js中加载事件数据
- 加载事件中的“太多递归”
- 每10秒调用一次页面加载事件
- jQuery"该参考文献“;加载事件后未设置
- ASP网格视图的重新加载事件
- 在点击和加载事件时播放暂停背景音频
- 引导模式加载事件
- 页面中的条件在卸载之前加载事件
- 如何在 asp.net 中的页面加载事件之前调用 JavaScript 确认对话框
- 位置.重新加载事件触发按钮单击事件
- iframe 加载事件中的 setTimeout 似乎没有像预期的那样等待 x 秒
- 图像加载事件未触发