Показать сообщение отдельно
  #5 (permalink)  
Старый 30.01.2015, 16:48
Новичок на форуме
Отправить личное сообщение для She-Wolf Посмотреть профиль Найти все сообщения от She-Wolf
 
Регистрация: 30.01.2015
Сообщений: 5

Сообщение от She-Wolf Посмотреть сообщение
var self = this;
    self.engines = ko.observableArray([]);      // Массив двигателей
    self.loadengines = function(cat) {
        self.engines.destroyAll();
        self.page("engines");
        jsRoutes.controllers.Engines.getenginesbycat().ajax({
            data: new Req(cat),
            success: function(data) {
                self.engines.valueWillMutate();
                self.engines([]);
                for (i = 0; i < data.objects.length; i++) {
                    self.engines.push(data.objects[i]);
                }
                self.engines.valueHasMutated();
            }, error: function(data) { alert("Произошла ошибка!"); }
        });
    }
Сообщение от tsigel Посмотреть сообщение
self.engines - это не массив судя по тому что написано в этом коде. Это либо объект наследник массива, в таком случае смотрите где напортачили в прототипах, либо массив с измененным прототипом (что вообще нельзся делать).

Ну или это нечто вообще не связанное с массивом

остановите в отладчике код на строке 10 и выведите в консоль следующее:

1) self.engines
2) self.engines instanceof Array
3) self.engines.push

Смотрите ошики в консоли.

self.engines = ko.observableArray([]); - что это ,если не массив?
Ответить с цитированием