form
にはradio
ボタンしか付いていません。投稿前にform
の有効性を確認する必要があります(ユーザーは何かを選択する必要があります)。ユーザーがラジオボタンを選択した後、ngclass
を使用してスタイリングを適用する必要があります。私は2つの問題があります:
1.何らかの理由で、最後のオプションがデフォルトで選択されています。
2.フォーム検証属性を取得できません。データを選択すると、データは更新されません。角度 - ラジオボタンの形式を確認できません
JS:
app.controller('MainCtrl', function($scope) {
$scope.questionObject = [{
"body": "abc"
}, {
"body": "def"
}, {
"body": "aghi"
} ]
$scope.selectAnswer=function(number,obj)
{
$scope.isChecked=number;
}
});
HTML:
<div class="form-group" ng-form="form">
<div class="col-lg-8 col-lg-offset-2 col-sm-12">
<div class="row" ng-repeat="obj in questionObject track by $index">
<div class="radio">
<label class="choice" ng-class="{'choiceSelected': isChecked==$index}">
<input type="radio"
name="optradio"
ng-click="selectAnswer($index,questionObject.correct_answer)"
ng-model="radioInput">{{obj.body}}
</label>
</div>
</div>
</div>
</div>
<pre>
dirty:{{form.$dirty}}
pristine:{{form.$pristine}}
</pre>
EDIT これは、フォームを出力します。更新しないでください
{
"$error": {},
"$name": "form",
"$dirty": false,
"$pristine": true,
"$valid": true,
"$invalid": false,
"$submitted": false
}
このユーザーは*最後*のオプションをクリックした場合にのみ、 '$のinvalid'ステータスを変更するように見えます。しかしそれに加えて、最初の選択時には「原始的な」変化があります。 – undroid
@undroidは、フォームの有効な状態と無効な状態を示すplunkerとanswerを更新しました。ご質問がある場合はお知らせください。 – Deep
はい、あなたの例が動作します。私はこの仕事を私の側ではできません。もっと深く掘り下げなければなりません。あなたの 'ng-model'操作の背後にある論理を説明するのに気をつけますか? – undroid