Как вы получаете все экземпляры шаблона?
Я знаю, что могу получить один экземпляр шаблона, выполнив Blaze.getView(node)
, Но как я могу найти все случаи Template.foo
?
1 ответ
Решение
Если мы заимствуем walkTheDOM у Крокфорда, мы можем перенести это в консоль браузера и найти все экземпляры шаблонов на любой странице.
function findAllTemplateInstances(templateName){
function walkTheDOM(node, func) {
func(node);
node = node.firstChild;
while (node) {
walkTheDOM(node, func);
node = node.nextSibling;
}
}
var instances = [];
walkTheDOM(document.body, function(node) {
try{
if (Blaze.getView(node).name === templateName){
instances.push(Blaze.getView(node).templateInstance());
}
} catch(err){
}
});
return _.uniq(instances)
}