Knockout .length或.count

时间:2017-04-26 20:35:12

标签: javascript knockout.js

我有一些我需要做的数学运算,我使用razor将所有这些数字拉入数组中。我不会马上把它们算在内,因为我以后需要过滤它们。

我可以在我的数据绑定字段中打印数组但是我不能添加.length或.count它不起作用。我做错了什么?

敲除

<script>
    var thePage = function () {
        var self = this;
        self.All = ko.observableArray(@Html.Raw(Json.Encode(Model.All.Select(i => i.Number))));
        self.SomePercentage = ko.observable(@Html.Raw(Json.Encode(Model.Percentage)));
        self.someTotal = ko.pureComputed(function () {
            var total = self.All // .length? .count? what goes here to count all the items I have in my array?!;
            return total;
        });
    };
    ko.applyBindings(new thePage());
</script>

2 个答案:

答案 0 :(得分:0)

self.All是一个可观察的,你想要observableArray的值,它是一个Javascript数组:

 var total = self.All().length

KnockoutJs Observables / ObservableArrays是函数,Observables可以获取参数,使用任何参数调用observable都会返回Javascript原语,也就是Observable的值。

答案 1 :(得分:0)

要获得JavaScript数组的大小,请阅读length property。由于Allobservable,因此您可以通过将其作为函数调用来读取该值。

var total = self.All().length;