計算的可觀測量

計算的可觀察物件是可以觀察反應檢視模型上的其他可觀察物件的函式。以下示例顯示瞭如何顯示使用者總數和平均年齡。

注意:下面的示例也可以使用 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);