Немного тайны возникло с использованием нокаута (2.1.0) и отображения нокаута (2.1.2) в IE9. По какой-то причине индексы массивов объектов превращаются в родительские объекты. Например:knockout.mapping, IE9 и сериализация
ko.mapping.toJSON(attachments);
производит то, что выглядит, как это в Chrome:
{
"UserID": 432,
"Attachments": [{
"AttachmentID": 2,
"OwnerID": 321,
"DisplayName": "sample.pdf",
"Description": "desc",
"PostDate": "2012-06-01T09:24:43.817"
}, {
"AttachmentID": 3,
"OwnerID": 432,
"DisplayName": "sample3.pdf",
"Description": "desc",
"PostDate": "2012-06-05T14:01:00.693"
}, {
"AttachmentID": 4,
"OwnerID": 543,
"DisplayName": "sample2.pdf",
"Description": "desc",
"PostDate": "2012-06-05T14:01:49.18"
}]
}
... но в IE9, производит что-то вроде этого:
{
"UserID": 432,
"Attachments": {
"0": {
"AttachmentID": 2,
"OwnerID": 321,
"DisplayName": "sample.pdf",
"Description": "desc",
"PostDate": "2012-06-01T09:24:43.817"
},
"1": {
"AttachmentID": 3,
"OwnerID": 432,
"DisplayName": "sample3.pdf",
"Description": "desc",
"PostDate": "2012-06-05T14:01:00.693"
},
"2": {
"AttachmentID": 4,
"OwnerID": 543,
"DisplayName": "sample2.pdf",
"Description": "desc",
"PostDate": "2012-06-05T14:01:49.18"
}
}
}
Это нарушает мои нокаута привязок потому что шаблон ожидает, что вложения будут массивом первого порядка.
Интересно, что строчка json2 возвращает первый результат (что я и ожидал) в каждом браузере, который я пробовал.
Кто-нибудь видел это поведение раньше? Любые идеи о том, как исправить это?
звучит как ошибка .... попробуйте сообщить об этом здесь: - https://github.com/SteveSanderson/knockout.mapping/issues –
[Сообщено] (https://github.com/SteveSanderson/knockout.mapping/вопросы/81). – Ross