Почему моя вычисляемая функция не добавляется к каждому элементу в моем наблюдаемом массиве?

У моего наблюдаемого массива есть две строки (items?), Строка [0] имеет pid = 2; строка [1] имеет pid = 3.

Я пытаюсь добавить поле в наблюдаемый массив с именем cartItems. Это должно быть похоже на добавление столбца в электронную таблицу Excel или в математическую матрицу.

Следующий код не выдает никаких ошибок, но также не вычисляет значение self.myTest ( i5 всегда получает ответ по умолчанию, равный нулю. Почему?

self.cartItems = ko.mapping.fromJS(cartItems);

    self.myTest = ko.computed(function(){
        var ans =0;
        ko.utils.arrayForEach(self.cartItems, function(item) {
        ans =  ko.utils.unwrapObservable(item.pid());
    });
    return "myTest="+ans;
},self);

1 ответ

Попробуй использовать ko.utils.arrayForEach(self.cartItems(), ... вместо ko.utils.arrayForEach(self.cartItems, ..., (с ()). Скрипка

Обновить:
Посмотрите на обновленную Fiddle, чтобы решить вашу проблему с возможностью добавления нового свойства в строку (элемент).

Другие вопросы по тегам