早上好!
我在堆栈上找到了几篇与此相关的帖子,但我还没有找到任何可以完成我正在尝试做的事情的帖子。
(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
}
我的用户将动态创建表单,因此我必须能够在所有情况下都非常优雅地处理它。我无法将任何与对象相关的数据硬编码到控制器中,也无法手动创建模型对象来处理这种情况。
我曾考虑循环遍历已知的 ID 集以搭建要在初始化期间填充的响应对象,但是当 Angular 有这样一种很好的方式来动态创建响应对象时(这种情况除外),这似乎有点矫枉过正。
这样做的最佳方法是什么?