Meteor 和 underscoreJS - 整数的随机数组及其不连贯的总和

Meteor and underscoreJS - random array of Integers and its sum incoherent

我想显示一个随机的整数数组及其对应的总和。

问题:结果不连贯。

我的做法:

Template.registerHelper('randomNumbers', function () {
    var list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    var resultLength = _.random(1, list.length);
    var result = _.sample(_.shuffle(list), resultLength);
    return {
        result: result,
        total: _.sum(result)
    };
});

HTML 模板:

<template name="displayResults">
    <tbody>
        <tr>
            {{randomNumbers.result}}
        </tr>
        <tr>
            total: {{randomNumbers.total}}
        </tr>
    </tbody>
</template>

在我看来,对于 "total" 的计算,结果函数是单独调用的。 我怎样才能使 "result" 和 "total" 同步?

提前致谢! 文

您的模板的问题是您调用了助手 2 次,并且由于随机性,它将提供 2 对不同的(结果,总计)。

通过使用 {{#with}} 块助手,您仅显式调用该助手一次并将显示有效对。

<template name="displayResults">
  <tbody>
    {{#with randomNumbers}}
      <tr>{{result}}</tr>
      <tr>total: {{total}}</tr>
    {{/with}}
  </tbody>
</template>