Всем привет.
Есть следующий код, который выводит таблицу успеваемости студентов:
<tr ng-repeat="student in groupServ.students | reverse" ng-class="{warning : student.updated, dim: student.deleted, success: student.created, danger: student.error}" data-id="{{student._id}}">
<td><input type="text" ng-value="student.name"
class="student-name" placeholder="Имя студента"
on-change="studentNameOnChange" ng-disabled="student.deleted"></td>
<td ng-repeat="subject in groupServ.subjects track by $index">
<input type="text" class="rating-cell" ng-value="student.rating[selectedCtrlPoint][$index]" ng-disabled="student.deleted" on-change="studentRatingOnChange">
</td>
<td class="td-buttons">
<button class="btn btn-sm btn-danger" click="deleteStudent" ng-hide="student.deleted">Удалить</button>
<button class="btn btn-sm btn-primary" click="restoreStudent" ng-hide="!student.deleted">Восстановить</button>
</td>
</tr>
Проблема:
Здесь
<input type="text" class="rating-cell" ng-value="student.rating[selectedCtrlPoint][$index]" ng-disabled="student.deleted" on-change="studentRatingOnChange">
при изменении значения selectedCtrlPoint (номер сессии) с помощью директивы ng-value меняются значения input'ов. Меняются без пререканий, но если с клавиатуры внести изменения в input, то при следующих изменениях selectedCtrlPoint именно эти input'ы не меняются (остается введенное значение), с остальными (не измененными) всё хорошо.
Почему angular себя так ведет? Может я ошибся в чем-то и что-то не понимаю?
Заранее благодарю.