Доброе утро!AngularJS с использованием ngModel для получения сложного объекта из Checkbox set
Я нашел несколько сообщений в стеке, которые касаются этого, но я не нашел ни одного, который выполнит то, что я пытаюсь сделать точно.
(JS Fiddle для справки: http://jsfiddle.net/gsLXf/1/)
У меня динамический набор вопросов, которые я задаю в рамках обследования. Я выяснил, как привязывать ответы в текстовых и радиоответствиях к объекту «ответ», который я могу отправить обратно на свой сервер. У меня проблема с флажками. Как вы можете видеть на скрипке, когда я пытаюсь сделать
ng-model="response[question.id]"
все мои флажков ответить как один элемент (который имеет смысл, поскольку все они связаны с тем же значением. Однако, когда я использую
ng-model="response[question.id][option.id]"
я поп ошибку, потому что question.id не инстанцирован еще так option.id не может быть выдвинут на объект
в идеале мой объект ответа на который ссылается скрипку будет выглядеть следующим образом.:
{
"123456": "2", //radio question
"789012": //checkbox question
["5", "6"] //list of checkbox options ids selected
}
Мои пользователи будут создавать формы динамически, поэтому я должен иметь возможность обрабатывать это очень изящно во всех ситуациях. Я не могу жестко закодировать любые связанные с объектом данные в контроллере, и я не могу вручную создавать объекты модели для обработки этой ситуации.
Я рассмотрел цикл, пройдя через известный идентификатор, чтобы закрасить объект ответа, который должен быть заполнен во время инициализации, но кажется, что он переполнен, когда Угловая имеет такой хороший способ просто создать объект ответа «на лету» (за исключением этой ситуации).
Каков наилучший способ сделать это?
если вы кладете ответ идентификаторы первоначально в ответ на это не проблема: http://jsfiddle.net/Uh2Gc/ –
Спасибо за комментарий, но это не сработает, если вы не можете показать мне способ сделать это динамически на основе объекта вопросов. Все это управляется базой данных и API среднего уровня, поэтому я не могу передать/жестко закодировать что-либо в контроллер (например, добавить этот объект в объект ответа. – Shane
Теперь он динамический: http://jsfiddle.net/ Uh2Gc/1/ –