我定义了以下助手:
$.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传递给函数,实际上每次添加或删除项目时它都会更新总数。但是,当我对任何一行显示更新数量属性时,总数没有更新。
如果有人能告诉我怎么做,我会很感激。
由于
答案 0 :(得分:0)
答案 1 :(得分:0)
是的,正如您在https://github.com/BorisMoore/jsviews/issues/280中找到的那样,目前没有依赖于&#34; All&#34;的声明性语法。可能在V1.0之后添加该功能 - 沿着total.depends = "lines**";
或total.depends = "lines*.*";
的行添加帮助:function total(...)
...
同时你可以使用程序化方法 - 这仍然很容易。只需添加以下内容即可触发刷新:
$.observable(model.lines).observeAll(function() {
$("#lines").link(true, model);
})
或只刷新&#39;总计&#39;通过写作:
<span id="total" data-link="~total(lines)"></span>
和
$.observable(model.lines).observeAll(function() {
$("#total").link(true, model);
})