Javascript meteor.js的模板加载事件
我知道meteor会为DOM元素公开诸如“单击”之类的事件,但我想知道在加载模板或部分时是否会触发加载事件?我将如何做到这一点 谢谢。以下内容应该有效。Javascript meteor.js的模板加载事件,javascript,meteor,Javascript,Meteor,我知道meteor会为DOM元素公开诸如“单击”之类的事件,但我想知道在加载模板或部分时是否会触发加载事件?我将如何做到这一点 谢谢。以下内容应该有效。 一旦模板添加到DOM并呈现,Meteor.defer将被调用 <template name="temp"> //regular stuff {{invokeAfterLoad}} </template> Template.temp.invokeAfterLoad = function () { Me
一旦模板添加到DOM并呈现,Meteor.defer将被调用
<template name="temp">
//regular stuff
{{invokeAfterLoad}}
</template>
Template.temp.invokeAfterLoad = function () {
Meteor.defer(function () {
$('mydiv').jquerify();
});
return "";
};
//普通的东西
{{invokeAfterLoad}}
Template.temp.invokeAfterLoad=函数(){
Meteor.defer(函数(){
$('mydiv').jquery();
});
返回“”;
};
我建议这样做,而不是公认的答案,稍微少一点粗俗:
<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();
});
};
{{AreaActiveHelper}}
Template.temp.AreaActiveHelper=函数(){
var someValue=Session.get('someValue');
invokeAfterLoad();
返回一些值;
};
var invokeAfterLoad=函数(){
Meteor.defer(函数(){
$('mydiv').doSomething();
});
};
假设您希望在加载模板后调用某个对象,因为它是对反应对象作出反应的
这里的好处是您不需要向模板中添加动画代码。对于从0.4.0预览版开始的Meteor,您可以使用 但是,在
Template.myTemplate.created
中,DOM尚未就绪
如果需要操作DOM,您可能希望改为使用,并使用布尔值跟踪模板对象内的状态,如下所示:
Template.myTemplate.rendered = function() {
if(!this._rendered) {
this._rendered = true;
console.log('Template onLoad');
}
}
这与Nachiket的v1.1.0.2版本的答案几乎相同。该模式已被弃用。改为使用
Template.temp.helpers(…)
。Template.myTemplate.rendered
自Meteor 1.0.4以来一直被弃用。虽然仍支持向后兼容,但您可能希望对较新版本使用Template.myTemplate.onRendered
。