Кажется, что нокаут не правильно отображает свойства объектов в массиве.Нокаут не отображает свойства объекта в массиве
Смотрите этот пример из хромированной консоли:
> var viewmodel = ko.mapping.fromJS({list:[]});
undefined
> viewmodel.list().unshift({ name : ko.observable("Foo") });
1
> viewmodel.list()[0].name();
"Foo"
> var js = ko.mapping.toJS(viewmodel);
undefined
> js.list[0].name;
undefined
Так Javascript объект создается, но свойство «имя» не получает карту.
Любые идеи приветствуются!
Спасибо за быстрый ответ. Есть ли способ изменить поведение для сопоставления каждого свойства? Документация, похоже, не упоминает об этом. –
@RichardAstbury Я так не думаю. Вам нужно будет жестко закодировать это в настраиваемую версию плагина сопоставления. – Niko
С тех пор я нашел ko.toJSON (viewModel), который, похоже, выполняет эту работу. –