我想在 Meteor.js 中解决以下问题:
我有一个 HTML 元素,只有在用户登录时才会出现在模板中:
{{#if currentUser}} <input ...> {{/if}}
.出现 HTML 元素后,我需要对其执行 JS 命令。因此,我需要某种在模板更新后发生的回调。如何实现?
在这种情况下,我所知道的响应式(Reactive)数据源都无法解决问题,例如 Meteor.user()
source 在更新模板之前触发依赖项。另见我之前的问题 here .
最佳答案
重构您的模板代码,将 {{#if}}
block 助手的内容放入子模板中,这将触发它自己的 onRendered
生命周期事件只有当两个条件都满足时,隐含的新 HTML 内容才会插入到 DOM 中。
HTML
<template name="parentTemplate>
{{#if currentUser}}
{{> childTemplate}}
{{/if}}
</template>
<template name="childTemplate">
{{! whatever}}
</template>
JS
Template.childTemplate.onRendered(function(){
// here you go
});
关于javascript - 模板更新的 meteor react 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29722721/