余额仍然停留在5000

时间:2016-02-27 05:33:13

标签: javascript html meteor

我已经尝试了所有我能想到的东西,无论如何我的平衡都不会改变。我的代码目前是:

if (Meteor.isClient) {
  Session.setDefault('num', Random.fraction());
  Session.setDefault('bal', 5000)

  Template.hello.helpers({
    num: function () {
      return Session.get('num');
    }
  });

  Template.Balance.helpers({
    bal: function () {
      return Session.get('bal');
    }
  });

  Template.hello.events({
    'click button': function () {
      Session.set("num", Random.fraction());
    }
  });

   Template.TrueFalse.helpers({
  'trueFalse': function(){
    return( Session.get('num') > 0.5 ? true : false )
  }
});

Template.Balance.events({
  'click button': function() {
    if ( Session.get('num') > 0.5 ) {
      Session.set('bal', Session.get('bal') + 1);
    } else {
      Session.set('bal', Session.get('bal') - 1);
    }
  }
});

}
if (Meteor.isServer) {
  Meteor.startup(function () {
  });
}

我尝试了以前的解决方案,但似乎都没有。

我认为它可能与生成随机数这一事实有关,并且由于两个函数都是'而检查它是否同时大于或小于.5。点击按钮',但我不知道如何解决这个问题。

有人可以只修改修复程序,我会弄清楚你做了什么吗?

感谢。

顺便说一下,如果它有帮助,这是HTML文件:

<head>
  <title>RNG</title>
</head>

<body>
  <h1>{{> Balance}}</h1>

  {{> hello}}

  <h1>{{> TrueFalse}}</h1>
</body>

<template name="hello">
  <button>Click Me</button>
  <p>You've pressed the button {{num}} times.</p>
</template>

<template name="TrueFalse">
    {{#if trueFalse}}
        You Win!
    {{else}}
        You Lose!
    {{/if}}
</template>

<template name="Balance">
    Balance: {{bal}}
</template>

1 个答案:

答案 0 :(得分:0)

我还没有使用过真正使用过的Meteor,但它的外观如下:当您为模板定义事件时,事件选择器只匹配模板中的 。因此,平衡模板中绑定的click button事件永远不会被触发,因为余额模板中没有按钮。

您可以更新Hello模板click button事件中的余额:

  Template.hello.events({
    'click button': function () {
      Session.set("num", Random.fraction());
      if ( Session.get('num') > 0.5 ) {
        Session.set('bal', Session.get('bal') + 1);
      } else {
        Session.set('bal', Session.get('bal') - 1);
      }
    }
  });