Использование ko.utils.arrayForEach для итерации по observableArray

Я пытаюсь вычислить сумму поля 'price' в 'observableArray'. Пока у меня есть следующий код:

(function(){

function objFeatures(name,price) {
        return {
            name: ko.observable(name),
            price: ko.observable(price),

            removeFeatures: function () {
                appViewModel.features.remove(this);
            }
        }
    }

var appViewModel = {
features: ko.observableArray([
            new objFeatures("Feature1", 20),
            new objFeatures("Feature2", 20)
        ]),

 grandTotal: ko.computed(function () {
            var total = 0;
            ko.utils.arrayForEach(this.features(), function () {
                total += this.price();
            })
            return total;
        })
};

ko.applyBindings(appViewModel);

}());

Когда я пытаюсь запустить это, я получаю «Ошибка: this.features не является функцией» в консоли firebug.

Что я делаю неправильно?

33
задан AlfeG 19 February 2012 в 22:31
поделиться