プロパティにブール値があるオブジェクトにラジオボタンをバインドするときに問題が発生します。$ resourceから取得した試験問題を表示しようとしています。
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シリアル化を変更することは困難です。モデルの構造を変更せずにモデルバインディングを設定する別の方法はありますか?