1

私のビュー モデルには、$.getJSON 呼び出しから設定する必要がある監視可能な配列があります。返された JSON に含まれる「価格」列の合計を表す計算されたオブザーバブルが必要です。

監視可能な配列にデータを入力することができました...

(function($){

    function Coupon(expiration, value) {
        var self = this;
        self.expiration = expiration;
        self.value = value;
    }

    $(function() {
        $.when($.getJSON(coupons_url, null)).done(function(couponsJson) {
            ko.applyBindings({
                coupons: ko.utils.arrayMap(couponsJson[0].objects,
                    function(coupon) {
                        return new Coupon(coupon.expiration, coupon.value);
                    })

                savingsAvailable: ko.computed(function() {
                    var total = 0;
                    for (var i = 0; i < this.coupons().length; i++) {
                        total += parseFloat(this.coupons()[i].value / 100);
                    }
                    return total.toFixed(2);
                })
            });
        });

    });
})(jQuery);

coupons...しかし、計算されたオブザーバブルにデータを入力しようとしたときに、の値にアクセスする方法がわかりません。this.coupons()エラー: 「this.coupons() は関数ではありません」。これを達成するために何をする必要がありますか、および/または何が間違っていますか?

4

1 に答える 1