Использование ненормализованных данных с помощью плагина Knockout Mapping - PullRequest
3 голосов
/ 17 марта 2012

У меня есть служба REST, которая возвращает коллекцию, которая содержит ненормализованные данные.Например, это может выглядеть примерно так:

root
.
root:CollectionItem[0].alpha
root:CollectionItem[0].beta
root:CollectionItem[0].zappa
.
root:CollectionItem[1].alpha
root:CollectionItem[1].children[0].MoonUnit
root:CollectionItem[1].children[1].Dweezil
root:CollectionItem[1].zappa
.
root:CollectionItem[2].alpha
root:CollectionItem[2].beta
root:CollectionItem[2].zappa

Какая лучшая стратегия для использования подключаемого модуля сопоставления с ненормализованными данными JSON, подобного этой?Проблема заключается в том, что плагин, кажется, использует CollectionItem [0] в качестве шаблона, но когда я пробираюсь через результат, Knockout взрывается, когда я пытаюсь прочитать root.CollectionItem [1] .beta (которого не существует).

РЕДАКТИРОВАТЬ # 1 : Думаю, нокаут не так популярен, как я думал ... Этот вопрос, похоже, предназначен для премии Tumbleweed.: - (

РЕДАКТИРОВАТЬ # 2 : Получил действенный ответ на форуме по нокауту http://groups.google.com/group/knockoutjs/browse_thread/thread/6705c222481c7b75#,, поэтому мне не нужно беспокоиться о еще одной премии Tumbleweed Award!: -)

1 Ответ

3 голосов
/ 20 марта 2012

Я получил ответ от кого-то по имени NTB на форуме Knockout JS. Вот его решение на скрипке JS на случай, если кому-то будет интересно. Ненавижу отвечать на мой вопрос, но это то, что есть.

http://jsfiddle.net/PxeyY/

Вот его резюме:

"У меня есть иногда вручную «массируют» данные перед вызовом картографа, или создал фиктивный объект оболочки, который имеет все возможные свойства, установленные в null (или [] в случае массивов) - затем используйте $ .extend (dummy, real) для создать что-то .fromJS () может работать с. Вы должны пройти через массив с этим шаблоном, но это все равно мои $ .02.

«Хотел бы и сам услышать более чистые решения».

...