Meteor并未对数据变化进行“重新审核”

时间:2015-07-17 16:00:22

标签: meteor

我在渲染回调中有自动运行功能:

Template.drawFlow.rendered = ->
    outerData = this
    this.autorun ->
        # do some work here using reactive collections
        s = Session.get("redrawLines")
        connectRecursive outerData.data.tasks, outerData.data.startTask

我想要的是在this.autorun中更改数据以重新执行该功能。现在它没有这样做,所以我想知道为什么。

更新 更新了上面的代码,以及我做的一些事件:

Session.set('redrawLines', moment())

应该使自动运行功能内的计算无效。 此外,“outerData”变量应该是被动的,因为它来自IronRouter的“data”部分。

2 个答案:

答案 0 :(得分:2)

this.autorun是一个被动计算,但你需要在该自动运行功能中使用被动,以便在更新该数据时呈现视图。

Meteor中的反应源包括会话变量,游标,Meteor.user等。这是一个很好的阅读,可以帮助你:

https://www.discovermeteor.com/blog/reactivity-basics-meteors-magic-demystified/

希望有所帮助。

答案 1 :(得分:0)

最终工作代码,在DOM完成后触发(与我的解决方案相反):

Template.drawFlow.onRendered ->
    console.log "Template.drawFlow.onRendered"
    this.autorun ->
        data = Router.current().data()
        Tracker.afterFlush ->
            console.log "dom is now created"