2014-04-03 30 views
0

嗨我正在使用角js构建我的应用程序。生成动态表单时遇到一个问题。 我的json是:使用自定义json创建角度表单和获取数据

{ 
    lines :[ { 
      fields:[{ 
       fieldType : "input", 
       labelName : "Test Label", 
       modelName : "testInput" 
      },{ 
       fieldType : "select", 
       labelName : "Test Label", 
       options : "['opt1','opt2','opt3']", 
       modelName : "testSelect" 
      },{ 

       fieldType : "checkbox", 
       labelName : "Test Label", 
       modelName : "testCheckbox", 
       options : '[{'key':'key1','value':'value1'}]" 
    }] 
} 

这只是示例json。实时,它是更复杂的类型。我为所有的Html元素创建单独的组件,如“输入”,“选择”,“复选框”,“收音机”...我使用指令为所有输入元素。我从表格的父母范围中抽取了一些细节到指令。 为如:

主要指令

<ui-form form-option='uiFormOption'></ui-form> 
Above is the main directive. i am passing above json in this Main Directive. 

指令里面,我遍历所有行和并调用相应的指令,以填补基于字段类型的组件。

在这里,在Html组件指令创建隔离作用域我需要太好。

当我保存这个,我需要获取ParentScope中的单个对象中的所有数据,如 $ scope.myFormData = {}; //父级作用域控制器。 当我点击保存,所有的数据必须收集。我的问题是儿童指令中的$范围。所以模型地图不知道给父母。如何实现这一目标?

回答

0

我不知道如果我理解正确你的问题,但在我的脑海里突然出现两件事情,我相信你尝试过,但以防万一:

1,因为你是能够将数据获取到html组件,将数据直接绑定到您要从中收集数据的对象,并且由于它已在任何地方都可访问,因此您可以使用它来格式化所需的任何响应。

2-如果没有其他选项可用,您可以使用$ scope。$ root,我知道这不是最好的做法,但它总是为所有元素获取共享作用域。

我希望这是你正在寻找的,如果不是,请评论。

0

如果需要显示动态形式通过API,以便获取这种JSON对象的:

{ 
"status": "true", 
"statusCode": 200, 
"response": [ 
    { 
     "sort_order": 0, 
     "control_name": "ion-select", 
     "label": "Select master OLT", 
     "type": "select", 
     "placeholder": "Select master OLT", 
     "name": "E0selectoption_master_olt", 
     "readonly": "True", 
     "required": "required", 
     "maxlength": "", 
     "minlength": ""   
    }, 
    { 
     "sort_order": 1, 
     "control_name": "ion-select", 
     "label": "Select OLT port", 
     "type": "select", 
     "placeholder": "Select OLT port", 
     "name": "E1selectoption_olt_port", 
     "readonly": "True", 
     "required": "required", 
     "maxlength": "", 
     "minlength": ""   
    }, 
    { 
     "sort_order": 2, 
     "control_name": "ion-select", 
     "label": "Select Parent node", 
     "type": "select", 
     "placeholder": "Select parent node", 
     "name": "E2selectoption_parent_node", 
     "readonly": "True", 
     "required": "required", 
     "maxlength": "", 
     "minlength": "", 
     "is_dependent": "true", 
     "masters": "gis_node", 
     "value": ""   
    }, 
    { 
     "sort_order": 3, 
     "control_name": "ion-select", 
     "label": "Select child node", 
     "type": "select", 
     "placeholder": "Select child node", 
     "name": "E3selectoption_child_node", 
     "readonly": "True", 
     "required": "required", 
     "maxlength": "", 
     "minlength": "", 
     "is_dependent": "true", 
     "masters": "gis_node", 
     "value": ""   
    }, 
    { 
     "sort_order": 4, 
     "control_name": "button", 
     "label": "submit", 
     "type": "submit", 
     "placeholder": "", 
     "name": "E4submit_btnsubmit", 
     "readonly": "False", 
     "required": "required", 
     "maxlength": "", 
     "minlength": "", 
     "is_dependent": "false", 
     "masters": "", 
     "value": "" 
    } 
] 
} 
在给定的响应是JSON格式

。 ,所以你可以很容易地绑定这个数据与我们的HTML

相关问题