Angular:选中复选框的值

时间:2016-03-23 10:29:50

标签: angularjs

这是我的观点我想获得糖尿病或htn等值,因为我想以字符串格式存储它们。但是我现在正在做它的方式我用对象格式

 font(color ='green', size ='3')
                 strong Past History
               .checkbox
                   label
                       input(type='checkbox', value='',name = 'diabetes', ng-model = 'formData.history.diabetes')
                       | DIABETES
               .checkbox
                   label
                       input(type='checkbox', value='',name = 'htn', ng-model = 'formData.history.htn')
                       | HTN
               .checkbox
                   label
                       input(type='checkbox', value='',name = 'asthma', ng-model = 'formData.history.asthma')
                       | ASTHMA/COPD

当我

时,现在在我的控制器中
console.log($scope.formData.history)

我得到的输出如下:

`{diabetes : true}` 

但是我想以String形式将这些数据发送到我的后端。知道如何只获得“糖尿病”或“htn”。谢谢

4 个答案:

答案 0 :(得分:1)

绑定到复选框模型的值的类型默认为布尔值。这就是为什么您将truefalse作为值。

如果您想更改指令,请使用指令ng-true-value和/或ng-false-value。这是一个例子,在html中:

<input type="checkbox" name="htn" ng-model="formData.history.htn" ng-true-value="'htn'">

答案 1 :(得分:1)

根据您的方案,您应该将data-ng-model声明为数组

您的回答是here

<input type="checkbox" ng-model='formData.history[1]' ng-true-value="'htn'">

答案 2 :(得分:1)

 font(color ='green', size ='3')
                 strong Past History
               .checkbox
                   label
                       input(type='checkbox', value='', data-ng-true-value='diabetes', name = 'diabetes', ng-model = 'formData.history.diabetes')
                       | DIABETES
               .checkbox
                   label
                       input(type='checkbox', value='', data-ng-true-value='htn', name = 'htn', ng-model = 'formData.history.htn')
                       | HTN
               .checkbox
                   label
                       input(type='checkbox', value='', data-ng-true-value='asthma', name = 'asthma', ng-model = 'formData.history.asthma')
                       | ASTHMA/COPD

如果选中包含值的data-ng-true-value属性,请检查我是如何使用的。同样,取消选中时,您可以data-ng-false-value。这应该会给你{diabetes : diabetes}, {htn: htn}但是你编写ng模型的方式如果你需要多个选择你的ng模型需要修改以适应场景,它将像单选按钮一样工作。希望有所帮助

答案 3 :(得分:0)

JSON.stringify($scope.formData.history)

如果您希望数据采用JSON格式,这可以解决您的问题。