私のビュー モデルには、$.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() は関数ではありません」。これを達成するために何をする必要がありますか、および/または何が間違っていますか?