计算的可观测量

计算的可观察对象是可以观察反应视图模型上的其他可观察对象的函数。以下示例显示了如何显示用户总数和平均年龄。

注意:下面的示例也可以使用 pureComputed() (在 v3.2.0 中引入),因为函数只是根据其他视图模型属性计算某些内容并返回一个值。

<div>
  Total Users: <span data-bind="text: TotalUsers">2</span><br>
  Average Age: <span data-bind="text: UsersAverageAge">32</span>
</div>
var viewModel = function() {

    var self = this;

    this.Users = ko.observableArray([
        { Name: "John Doe", Age: 30 },        
        { Name: "Jane Doe", Age: 34 }
    ]);

    this.TotalUsers = ko.computed(function() {
        return self.Users().length;
    });

    this.UsersAverageAge = ko.computed(function() {
        var totalAge = 0;
        self.Users().forEach(function(user) {
            totalAge += user.Age;
        });
   
        return totalAge / self.TotalUsers();
    });
};

ko.applyBindings(viewModel);