在流星中,是否有一个onRendered函数用于所有模板

In meteor, is there a onRendered function for all templates?

本文关键字:用于 函数 onRendered 流星 是否 有一个      更新时间:2023-09-26

在流星中,是否有适用于所有模板的onRendered函数?或者有一个简单的替代方案吗?

示例:

Template.allTemplates.onRendered(function(){/*doSomething()*/});

而不是:

Template.template0.onRendered(function(){/*doSomething()*/});
Template.template1.onRendered(function(){/*doSomething()*/});
Template.template2.onRendered(function(){/*doSomething()*/});

似乎答案就在你面前:

_.each(_.keys(Template), function(key) { 
     if (Template[key] instanceof Blaze.Template) { 
        console.log(key, "is the name of a template");
        Template[key].onRendered(myGlobalOnRenderFunction);
     }
});

不过我不推荐它。在这种情况下,似乎很难预测会发生什么,因为这也会触发嵌套模板,所以您可能会得到比您希望的更多的对该处理程序的调用。