簡體   English   中英

無法達到由javascript中的ko.mapping實例化的observablesArray

[英]Can't reach observablesArray instantiated by ko.mapping in javascript

例如: http : //jsfiddle.net/valin/W4ubQ/

如您所見,通過函數實例化的數組( this.features )正在工作。 但通過陣列ko.mapping(實例化this.featuresFromJS )正在僅視圖,但不javascript函數內部。 我應該如何實例化featuresFromJS或計算lowTotal任何東西?

任何幫助表示贊賞。

希望這會有所幫助:

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

var AppViewModel = function () {
    var self = this;
    self.featuresFromJS = ko.observableArray();

    self.features = ko.observableArray([
    new objFeatures("Feature1", 20),
    new objFeatures("Feature2", 50)]);

    var data = '[{"name":"Feature3","price":20},{"name":"Feature4","price":50}]';

    ko.mapping.fromJSON(data, {}, self.featuresFromJS);

    self.lowTotal = ko.computed(function () {
        var total = 0;
        ko.utils.arrayForEach(this.featuresFromJS(), function (item) {                
            alert("hooray!");
            total += item.price();
        });
        return total;
    }, self);

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

ko.applyBindings(new AppViewModel());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM