鉴于此模板
<template name="content">
{{#each children}}
I'm a child
{{/each}}
<button name="create">Create</button>
</template>
和此代码
Template.content.children = ->
Children.find({_id: {$in: Session.get('parent').children}})
Template.content.events
'click button' : (event) ->
child = Children.insert({created_at: new Date()})
Parents.update(Session.get('parent')._id, {$push: {children: child}})
如何让模板自动更新?如果发现如果我将'父'会话变量改为其他东西,然后回到原来的那个,它可以工作,我确实看到所有的孩子,但我希望它是自动的。
基本上,我只想在插入新孩子时自动更新孩子列表。但显然,我在这里做错了......也许这根本不是正确的做法?
答案 0 :(得分:0)
试试这个
Template.content.children = ->
parent = Session.get('parent')
Children.find({_id: {$in: parent.children}})
答案 1 :(得分:0)
这应该有效:
dep = new Deps.Dependency()
Template.content.children = ->
dep.depend()
Children.find({_id: {$in: Session.get('parent').children}})
Template.content.events
'click button' : (event) ->
child = Children.insert({created_at: new Date()})
Parents.update(Session.get('parent')._id, {$push: {children: child}})
dep.changed()
我真的不知道为什么初始代码没有自动更新,因为集合中的更改会导致依赖函数的反应性,所以这种方法只会强制反应。
修改强>
我看到问题很古老,Meteor因为低于1.0而变化很大,所以它可能会露出旧版本的状态。我的回复适用于0.8.0版本。