我已经在网上搜索了一段时间,现在试图找到一种方法,使用 += 或 -=(如果满足条件)来聚合 json 数组值和 Handlebars 。但是我似乎找不到任何关于如何正确执行此操作的指南。谁能指导我如何将此迭代转换为 Handlebars 助手?
var table = $("#table tbody");
$.getJSON("front-end/ajax/bethistory.php", function(data) {
var value = 0;
$.each(data, function(a, b) {
if (b.action == "win") {
value += parseFloat(b.coins);
} else if (b.action == "lose") {
value -= parseFloat(b.coins);
}
var tbody = $("<tr/>").append($("<td/>").html(b.action), $("<td/>").html(value))
table.append(tbody);
});
});
类似这样的东西吗?
var value = 0;
Handlebars.registerHelper("this_val", function(a,b) {
if (a == "win") {
value += parseFloat(b);
} else if (a == "lose") {
value -= parseFloat(b);
}
return value;
});
最佳答案
对于任何需要这个的人。我能弄清楚thanks to this post
Handlebars.registerHelper("compute", function(array, options) {
var new_array = "",
value = 0,
count = array.length;
for (var i = 0; i < array.length; i++) {
var coins = Number(array[i]['coins']),
action = array[i]['action'];
if (action == "win") {
if (coins > 0) {
value += coins;
}
} else if (action == "lose") {
if (coins > 0) {
value -= coins;
}
}
array[i]['running'] = value;
new_array += options.fn(array[i]);
}
return new_array;
});
关于javascript - Handlebars +=,-= 如果满足条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41838867/