2016-03-23 5 views
1

Это мое мнение. Я хочу получить такие значения, как диабет, или htn и т. Д. Я хочу сохранить их в строковом формате. Но так, как я dooing прямо сейчас я получаю его в формате объектногоУгловое: получение значений флажка, если он установлен.

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». thank you

+0

Если вы хотите отправить данные как JSON, используйте JSON.stringify() https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify – RamblinRose

ответ

1

Тип значения, связанного с моделью флажка, по умолчанию является логическим. Вот почему вы получаете true или false как значения.

Используйте указания ng-true-value и/или ng-false-value, если вы хотите это изменить. Вот пример, в HTML:

<input type="checkbox" name="htn" ng-model="formData.history.htn" ng-true-value="'htn'"> 
0
JSON.stringify($scope.formData.history) 

Это должно решить вашу проблему, если вы хотите, чтобы ваши данные были в формате JSON.

1

По вашему сценарию вы должны объявить данные-нг-модель как массив.

Ваш ответ here

<input type="checkbox" ng-model='formData.history[1]' ng-true-value="'htn'"> 
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-модель должна быть изменена в соответствии с сценарием. Надеюсь, что поможет

Смежные вопросы