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>
我想显示一个随机的整数数组及其对应的总和。
问题:结果不连贯。
我的做法:
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>