[英]Dynamically add form inputs using Angular
我想创建一个多页表单,其中以后页面的内容由表单第一页上的输入动态确定。 这是我想做的事情:
第一页:
1)您使用哪个公司? (选择1)
-公司选择1
-公司选择2
-公司选择3
-公司选择4
2)您使用哪些服务?
-服务选项1
-服务选项2
-服务选项3
-服务选项1和2
-服务选项1和3
-服务选项2 $ 3
-服务选项1,2和3
对于第二页,我基本上希望内容基于他们在#1和#2中选择的内容。 例如,如果他们选择“公司选项2”和“服务选项3”,我将在下一页上列出与这些选择相对应的问题列表。 如果用户选择“公司选项4”和“服务选项1,2和3”,那将是另一组不同的问题。
我怀疑使用$ routeProvider可能是要走的路,但是我不确定。 附带说明一下,我将Firebase用作后端(因此我将在其中保存“第一页”的输入)。 任何帮助或示例如何做到这一点将不胜感激!
一个典型的非Angular应用程序可能工作如下:
使用Angular,您的流程将更像这样:
您可以调整此流程(例如,添加中间步骤以在用户做出选择时保存选择),但是最大的区别在于逻辑决定了显示哪些选择在客户端上存在。
您对$ routeProvider的问题使我认为您可能对允许用户恢复不完整的调查感兴趣。 那正确吗? 还是您仅对基于先前选择显示不同选择的逻辑感兴趣?
编辑
假设您有问题(答案):A(a1,a2),B(b1,b2)和C(c1,c2)。 答案a1将启用问题B,答案a2将启用问题C。
最重要的事情是正确设置模型:
scope.survey = {
"A": {
"answers": {
"a1": {
"enables": "B"
"picked": false
},
"a2": {
"enables": "C"
"picked": false
}
}
},
"b": {
"answers": {
"b1": {
"enables": ""
"picked": false
},
"b2": {
"enables": ""
"picked": false
}
}
},
"C": {
"answers": {
"c1": {
"enables": ""
"picked": false
},
"c2": {
"enables": ""
"picked": false
}
}
}
}
然后设置您的HTML问题,以便每个问题都具有ng-show指向正确的“已选择”属性。 例如,包含第二个问题的div将具有ng-show =“ survey.a.answers.a1.picked”。
棘手的部分是根据用户输入的内容来设置survey.a.answers.a1.picked的值。 尚不确定该怎么做!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.