首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JsViews数据-链接帮助函数

JsViews数据-链接帮助函数
EN

Stack Overflow用户
提问于 2015-11-01 18:50:41
回答 2查看 209关注 0票数 0

我定义了以下助手:

代码语言:javascript
复制
$.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;
    }
});

然后,我有以下代码将我的模型链接到我的视图:

代码语言:javascript
复制
var model = {
    lines: []
};

$("#lines").link(true, model);

最后,在这个观点中,我有以下几点:

代码语言:javascript
复制
<span data-link="~total(lines)"></span>

但是,每当我从数组中明显地添加或删除项时,它都不会更新总计。我读到您可以将lines.length传递到函数中,实际上,它每次添加或删除项时都会更新总数。但是,当我观察到针对任何行更新quantity属性时,总计没有更新。

如果有人能教我怎么做,我会很感激的。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-02 18:31:44

是的,正如您在https://github.com/BorisMoore/jsviews/issues/280中所发现的,目前没有依赖"All“的声明式语法。在V1.0之后,可能会添加该特性--按照帮助器的total.depends = "lines**";total.depends = "lines*.*";的方式:function total(...).

同时,您可以使用一种编程方法--这仍然非常容易。只需添加以下内容即可触发刷新:

代码语言:javascript
复制
$.observable(model.lines).observeAll(function() {
    $("#lines").link(true, model);
})

或者只刷新“总”跨度,方法是:

代码语言:javascript
复制
<span id="total" data-link="~total(lines)"></span>

代码语言:javascript
复制
$.observable(model.lines).observeAll(function() {
    $("#total").link(true, model);
})

参见例如:http://jsfiddle.net/BorisMoore/wch601L9/

票数 0
EN

Stack Overflow用户

发布于 2015-11-02 14:04:55

我发现了以下问题,其中有几个建议的解决方法:

https://github.com/BorisMoore/jsviews/issues/280

不幸的是,这两件事都是无稽之谈,但我想现在还得这么做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33465876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档