【发布时间】:2017-03-16 00:42:50
【问题描述】:
当 Blaze 重用模板时,如何触发 Template#onRendered 或等效项?
我有一个基于 <select> 元素的 jQuery UI 选择菜单小部件,其 <option> 子元素是使用 {{#each}} 创建的(目标是一个利用 Session 的帮助器以获取反应性)和一个 Blaze 模板。我正在刷新选择菜单 onRendered。
- Blaze 模板正确。 (
<option>{{text}}</option>) - 会话正在更改(通过
console.log()进行检查并在浏览器控制台中手动设置。 - 会话反应性、助手和
{{#each}}正在工作(检查隐藏的<select>显示其选项已正确更新)
只是模板被重用了,所以尽管只要Session 选项上下文更改为有更多选项(在创建新模板实例后调用onRendered())一切正常,jQuery UI 选择菜单是如果Session 选项上下文更改为具有相同或更少的选项(更少的选项只调用onDestroyed() 并且相同数量的选项甚至不这样做),则不准确(与上下文的当前状态不同步)。
【问题讨论】:
标签: jquery-ui meteor meteor-blaze