У меня есть класс модели с несколькими функциями (методами), прилагаемыми к нему. Когда я смотрю на длину наблюдаемого массива вне функций, длина возвращается правильно. Но когда я смотрю на наблюдаемый символ внутри функции класса моделей, он всегда возвращает 0. Но если я получаю доступ к элементу внутри наблюдаемого символа по индексу внутри функции, он возвращает правильный элемент. Почему длина всегда будет 0?0 длина ObserveableArray при доступе внутрь функция
function ModelView(data) {
var self = this;
self.items= ko.observableArray(data.items);
var test = self.items().length; //shows correct number
self.EditRule = function (product) {
for(var i=0; i<self.items().length; i++)
//dosuff but self.items().length is always 0
}
}
Я нашел работу вокруг, добавив дополнительное свойство в ViewModel, как так:
self.itemslength = ko.observable(self.items().length);
, очевидно, мой фактический вопрос гораздо более сложный, но цикл делает сравнение элементов с параметрами, передаваемыми чтобы убедиться, что что-то действительно. self.items - это в основном основной список.
, возможно, придется положить его в jsFiddle. Кажется, хорошо выше. –
Что произойдет, если вы замените тело цикла на 'console.log (i)' (я имею в виду, что вы действительно замените, а не просто вставляете журнал в начале)? – ebohlman