У мене виникають проблеми з прив'язкою радіо кнопок до об'єкта, властивості якого мають булеві значення. Я намагаюся відобразити екзаменаційні запитання, отримані з $-ресурсу.
HTML:
<label data-ng-repeat="choice in question.choices">
<input type="radio" name="response" data-ng-model="choice.isUserAnswer" value="true" />
{{choice.text}}
</label>
JS:
$scope.question = {
questionText: "This is a test question.",
choices: [{
id: 1,
text: "Choice 1",
isUserAnswer: false
}, {
id: 2,
text: "Choice 2",
isUserAnswer: true
}, {
id: 3,
text: "Choice 3",
isUserAnswer: false
}]
};
У цьому прикладі об'єкта властивість "isUserAnswer: true" не призводить до вибору перемикача. Якщо я інкапсулюю булеві значення в лапки, це працює.
JS:
$scope.question = {
questionText: "This is a test question.",
choices: [{
id: 1,
text: "Choice 1",
isUserAnswer: "false"
}, {
id: 2,
text: "Choice 2",
isUserAnswer: "true"
}, {
id: 3,
text: "Choice 3",
isUserAnswer: "false"
}]
};
На жаль, моя служба REST трактує цю властивість як булеву, і буде складно змінити серіалізацію JSON на інкапсуляцію цих значень у лапки. Чи є інший спосіб встановити прив'язку моделі без зміни структури моєї моделі?