我定义了以下助手:
$.views.helpers({
total: function(lines) {
var total = 0;
for (var i = 0; i < lines.length; i++) {
total += lines[i].price * lines[i].quantity;
}
return total;
}
});然后,我有以下代码将我的模型链接到我的视图:
var model = {
lines: []
};
$("#lines").link(true, model);最后,在这个观点中,我有以下几点:
<span data-link="~total(lines)"></span>但是,每当我从数组中明显地添加或删除项时,它都不会更新总计。我读到您可以将lines.length传递到函数中,实际上,它每次添加或删除项时都会更新总数。但是,当我观察到针对任何行更新quantity属性时,总计没有更新。
如果有人能教我怎么做,我会很感激的。
谢谢
发布于 2015-11-02 18:31:44
是的,正如您在https://github.com/BorisMoore/jsviews/issues/280中所发现的,目前没有依赖"All“的声明式语法。在V1.0之后,可能会添加该特性--按照帮助器的total.depends = "lines**";或total.depends = "lines*.*";的方式:function total(...).
同时,您可以使用一种编程方法--这仍然非常容易。只需添加以下内容即可触发刷新:
$.observable(model.lines).observeAll(function() {
$("#lines").link(true, model);
})或者只刷新“总”跨度,方法是:
<span id="total" data-link="~total(lines)"></span>和
$.observable(model.lines).observeAll(function() {
$("#total").link(true, model);
})参见例如:http://jsfiddle.net/BorisMoore/wch601L9/
发布于 2015-11-02 14:04:55
https://stackoverflow.com/questions/33465876
复制相似问题