【发布时间】:2014-02-02 09:19:06
【问题描述】:
我遇到了一种情况,我正在基于 Mongodb 树结构递归地渲染 Handlebars,如下所示:
<template name='menu'>
<ul class='menu'>
{{#each topLevelChildren}}
{{>menu-item}}
{{/each}}
</ul>
</template>
<template name='menu-item'>
<li>{{name}}
{{#if listChildren.count}}
<ul>
{{#each listChildren}}
{{>menu-item}}
{{/each}}
</ul>
{{/if}}
</li>
</template>
mongodb 文档如下所示:
{ _id : ObjectId("525eb7245359090f41b65106"),
name : 'Foo',
children : [ ObjectId("525eb60c5359090f41b65104"), ObjectId("525eb6ca5359090f41b65105") ]
}
listChildren 只返回一个光标,其中包含父级子级数组中每个元素的完整文档。
我想在渲染的树上做一些 jquery 化妆,但我似乎无法连接到整个树的“渲染”事件,比如
Template.menu-completed.rendered = function(){
// console.log('done!');
}
试试这个
Template.menu.rendered = function(){
console.log($('menu li'));
}
这不仅不会返回正确的结果(用逗号填充的括号),它还会冻结网络检查器(但不是应用程序...)。 任何帮助将不胜感激!
【问题讨论】:
-
你想做什么样的化妆?在大多数情况下,您可以通过 1) 将 jquery 改进分别应用于每个模板或 2) 合并模板来避免此问题。
-
我需要在完全渲染的模板中找到一个特定的锚标记并为其添加一个类...然后为其每个父级添加一个类
-
如果当前项目是正确的(锚所有者),您是否尝试使用自定义车把助手并执行一些 JQuery?看看这颗陨石github.com/raix/Meteor-handlebar-helpers
标签: meteor handlebars.js