【问题标题】:Meteor reactivity in functions when session changes会话更改时功能中的流星反应
【发布时间】:2017-09-24 15:02:12
【问题描述】:

我有这个函数,当事件发生时手动调用,例如click,我每次点击都需要调用这个方法以便它运行......但我希望每次自动调用该函数时间Session.get('activeDecision) 发生变化,所以我不需要在每个事件上调用它,因为事件实际上是在做Session.set('activeDecision', value')

这是我的功能

this.showResults = ->
  if Session.get("activeDecision")
    $(document).mousemove Meteor.rotatePointer
    $decisionId = Session.get("activeDecision")._id
    decisionDiv = "#" + $decisionId
    if decisionIsVoted($decisionId)
      opcion_roja_total = Session.get("activeDecision").redTotal
      opcion_azul_total = Session.get("activeDecision").blueTotal
      if (parseInt(opcion_roja_total) + parseInt(opcion_azul_total)) > 0
        percentage1 = Math.round((parseInt(opcion_azul_total) * 100) / (parseInt(opcion_roja_total) + parseInt(opcion_azul_total)))
        percentage2 = Math.round((parseInt(opcion_roja_total) * 100) / (parseInt(opcion_roja_total) + parseInt(opcion_azul_total)))
      else
        percentage1 = 0
        percentage2 = 0
      $(percentage: 0).animate
        percentage: percentage1
      ,
        duration: 1000
        easing: "swing"
        step: ->
          $(decisionDiv + " .blue-choice .percentage span").html Math.ceil(@percentage) + "%"

      $(percentage: 0).animate
        percentage: percentage2
      ,
        duration: 1000
        easing: "swing"
        step: ->
          $(decisionDiv + " .red-choice .percentage span").html Math.ceil(@percentage) + "%"

      $(decisionDiv + " .option").fadeOut "fast", ->
        $(decisionDiv + " .result").fadeIn "slow"

    else
      $(decisionDiv + " .result").fadeOut "fast", ->
        $(decisionDiv + " .option").fadeIn "slow"

如果我不手动调用此方法,即使 Session 发生变化,它也不会运行...我该如何处理?

【问题讨论】:

    标签: javascript coffeescript meteor


    【解决方案1】:

    如果我正确理解问题,您想使用template autorun。比如:

    Template.home.onRendered ->
      @autorun showResults
    

    showResults 将在其反应变量每次更改时被评估,autorun 将在模板被销毁时自动清理。

    【讨论】:

    • 是的,这正是我想知道的 :) 谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-27
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    相关资源
    最近更新 更多