动态表格和AngularJs

时间:2014-08-11 20:56:36

标签: angularjs angularjs-directive angularjs-scope angularjs-ng-repeat angular-ui

我们有一个基于数据库配置呈现的动态表单。我正在使用下面提到的代码

但是我无法获得所选复选框元素的值。请指导我完成这个。 我正在使用Checkbox Elements的清单模型。

 <label ng-repeat="cCheck in form.color">
  <input type="checkbox" checklist-model="outputs[form.databaseAttr]" checklist-    value="cCheck" ng-init="outputs[form.databaseAttr] = form.defaultValue"> {{cCheck}} <br>
</label>

Fiddle Link

如果我们有更好的处理动态表单的方式,请告诉我。像jQuery Serialize这样我们传递formId并从表单中获取所有元素。

1 个答案:

答案 0 :(得分:1)

开发了一个清单指令来解决复选框问题。您可以下载check-list.js并将其添加为模块依赖项,如下所示:

var exampleApp = angular.module('example', ["checklist-model"]);

因此,在您的HTML中,您应分别使用checklist-modelchecklist-value代替ng-modelng-value

<div ng-switch-when="checkbox">
    <br>{{form.text}} <br>
    <label ng-repeat="cCheck in form.color">
      <input type="checkbox" checklist-model="outputs[form.databaseAttr]" checklist-value="cCheck" ng-init="outputs[form.databaseAttr] = form.defaultValue"> {{cCheck}} <br>
  </label>
</div>

Try it yourself

编辑:要设置复选框的默认值,您可以将所需的值放入outputs[from.databaseAttr]数组中。在您的情况下,defaultValue:

{
    text: 'select mutiple colors',
    databaseAttr: 'checkbox',
    type: 'checkbox',
    color: ['red', 'blue', 'black'], 
    defaultValue: ['blue'] // <-- blue is set as default
}

JsFiddle