Это должен быть довольно тривиальный вопрос, но это сходит с ума! I't как шаг 1 учебника, но я не могу его работать .... так что это мой код:Невозможно добавить товар в наблюдаемыйArray
/* Model definition */
var PrivateSalesMenuModel = function() {
var self = this;
this.privateSales = ko.observableArray();
this.addPrivateSale = function (privateSale) {
var newPs = new PrivateSaleMenuItem(privateSale);
self.privateSales.push(newPs);
};
};
var PrivateSaleMenuItem = function (ps) {
this.title = ps.Description;
this.hasActual = ps.HasActual;
this.hasSale = ps.HasSale;
this.listaId = ps.ListaId;
this.isSelected = false;
};
/* end model definition*/
var privateSalesMenuModel = new PrivateSalesMenuModel();
ko.applyBindings(privateSalesMenuModel);
Довольно просто ... У меня есть объект, который представляет мою модель, это набор других объектов, называемый PrivateSaleMenuItem
. Проблема в том, что addPrivateSale
не работал должным образом. Где-то в коде я
privateSalesMenuModel.addPrivateSale(ps);
где пс является объектом, созданным другими функциями JavaScript ... в любом случае является exactaly объект мне нужно в конструкторе PrivateSaleMenuItem, так что последовательность не проблема. Проблема в том, что self.privateSales.push(newPs);
не работает ... после этого, число privateSalesMenuModel.privateSales
по-прежнему 0. Почему?
Отредактировано
Я положил toghether примера в jsFiddle с этим точно таким же кодом, и она отлично работает, так что я подозреваю, что-то в моей странице сделать толчок метод observableArray перестать работать ... как я могу узнать, что это такое?
опс ... звено jsfiddle http://jsfiddle.net/YBHf5/
У вас есть какие-либо ошибки в консоли? – Tanner
'ko.observableArray()' определяется? ... функция возвращает правильный массив? метод доступен? – Frogmouth
@ Таннер: нет, все чисто. – themarcuz