我正在尝试创建一个表单,其布局完全是数据驱动的.
示例数据源:
{ title : "Form Test",fields : [{ name : "FieldA",type : "string",value : "initial value" },{ name : "FieldB",type : "selection",options : ["1","2","3"],value : "2" },{ name : "FieldC",type : "struct",value : [{ name : "FieldC1",value : "initial value" },{ name : "FieldC2",value : "initial value" } ] } ] }
我认为可以使用ng-repeat和ng-switch来根据’type’来选择表单元素,但是当我到达’FieldC’时,我会递归地执行此操作.
<span ng-switch on="field.type"> <div ng-switch-when="string">STRING: {{field.value}}</div> <div ng-switch-when="selection">SELECTION: {{field.value}}</div> <div ng-switch-when="struct">STRUCT: ????</div> <div ng-switch-default>DEFAULT:{{field.value}}</div> </span>
本质上,我想要一种方法,当我遇到一个“结构”时,递归地将ng切换应用到结构域中?有没有办法“引用”模板,以便它可以在同一页面的多个地方使用?对模板“部分”的支持似乎需要通过路由协调服务器端,这在这里似乎过于杀伤.这是我需要开始挖掘创建自己的指令的东西吗?
您将需要构建一个使用这种数据的指令,并从中构建表单.
处理递归的方法是将包括顶级在内的每个级别视为另一个结构.我在这里建了一个版本:http://jsfiddle.net/U5Kyp/9/
确保您阅读文档中的指导指南,以便您了解发生的情况:http://docs.angularjs.org/guide/directive
原文地址:https://www.jb51.cc/angularjs/140788.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。