2015-12-18 44 views
2

在流星中,是否有所有模板的onRendered函数?还是有一个简单的选择?在流星中,是否有所有模板的onRendered函数?

例子:

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

不是:

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

回答

2

好像答案就在你的面前:

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

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