在Meteor.template.rendered中,如何在呈现所有内容后(在{{{each}}循环完成后)进行调用
嗨,我有这个模板在Meteor.template.rendered中,如何在呈现所有内容后(在{{{each}}循环完成后)进行调用,meteor,handlebars.js,Meteor,Handlebars.js,嗨,我有这个模板 <template name="users"> {{#each user}} <li id="{{_id}}"> <input type="checkbox" checked /> <span><select name="colorpicker"> {{#each color}} <option
<template name="users">
{{#each user}}
<li id="{{_id}}">
<input type="checkbox" checked />
<span><select name="colorpicker">
{{#each color}}
<option value="{{mColorCode}}" {{selected ../mColor mColorCode}}>{{mColorName}}</option>
{{/each}}
</select>
</span>
<img width="40" src="data:image/png;base64,{{mImage}}" />
<span class="name">{{mUsername}}</span>
<p><span class="description">{{mDescription}}</span></p>
</li>
{{/each}}
</template>
问题有时是它不工作(有时调用是在dom准备就绪之前进行的)
我想在渲染完所有内容后调用这个插件。不是每个添加的用户,我如何才能做到这一点
谢谢我发现Meteor渲染模板的频率有点滑稽,jQuery函数最终可能会生成 我开始添加
console.log(“用户渲染”)
以了解触发渲染回调的次数和时间
有一件事我取得了一些成功,那就是将该模板包装到另一个模板中,然后将回调绑定到外部模板。大概是这样的:
<template name="container">
{{> users}}
</template>
<template name="users">
{{#each user}}
<li id="{{_id}}">
<input type="checkbox" checked />
<span><select name="colorpicker">
{{#each color}}
<option value="{{mColorCode}}" {{selected ../mColor mColorCode}}>{{mColorName}}</option>
{{/each}}
</select>
</span>
<img width="40" src="data:image/png;base64,{{mImage}}" />
<span class="name">{{mUsername}}</span>
<p><span class="description">{{mDescription}}</span></p>
</li>
{{/each}}
</template>
不完全确定它为什么有效,但对我来说,希望有人能照亮我们两个 这是我使用的解决方案,也是一种黑客攻击,如果有人有更好的解决方案,请发布 我所做的是将呈现的模板放入集合的subscribe的回调中 我的代码是这样的:
Meteor.subscribe('trackedUser',function(){
Template.users.rendered = function(){
......
}
}
我知道这是一个很老的帖子,但因为我有一个问题,我想我找到了一个更好的方法,在这里。从技术上讲,即使在呈现内容时,也会呈现包含的模板。在我的例子中,我试图初始化一个物化模式。为了让它工作,它必须做以下几点 template.html
<div class="row" id="eventResults">
{{#each eventResults}}
{{> eventResult}}
{{/each}}
</div>
<template name="eventResult">
<div class="modal event" id="{{id}}">
<div class="modal-content">
...
通过调用子元素的onRendered上的代码和使用
this.$(“…”)
,代码不会被调用多次,每个元素只调用一次。这是一个聪明的解决方案,也是合乎逻辑的,因为当所有子元素都被渲染时,模板自然会被渲染,但它对我不起作用,不知道为什么。控制台记录了吗?你能看到一个模式在什么时候起作用,什么时候不起作用吗?例如,它第一次起作用,但之后就不起作用了…?它似乎是随机的,因为在每个模板中我都使用一个集合,所以在我看来,有时父模板完成渲染,但另一条记录被提取,子模板再次渲染
Meteor.subscribe('trackedUser',function(){
Template.users.rendered = function(){
......
}
}
<div class="row" id="eventResults">
{{#each eventResults}}
{{> eventResult}}
{{/each}}
</div>
<template name="eventResult">
<div class="modal event" id="{{id}}">
<div class="modal-content">
...
Template.eventResult.onRendered(function(){
this.$('.modal-trigger').leanModal();