我有一些我需要做的数学运算,我使用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>
答案 0 :(得分:0)
self.All
是一个可观察的,你想要observableArray的值,它是一个Javascript数组:
var total = self.All().length
KnockoutJs Observables / ObservableArrays是函数,Observables可以获取参数,使用任何参数调用observable都会返回Javascript原语,也就是Observable的值。
答案 1 :(得分:0)
要获得JavaScript数组的大小,请阅读length
property。由于All
是observable,因此您可以通过将其作为函数调用来读取该值。
var total = self.All().length;