Marcuzy
@Marcuzy
php разработчик

Почему в Angularjs ng-value не срабатывает после ввода в input?

Всем привет.
Есть следующий код, который выводит таблицу успеваемости студентов:
<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 себя так ведет? Может я ошибся в чем-то и что-то не понимаю?

Заранее благодарю.
  • Вопрос задан
  • 3221 просмотр
Пригласить эксперта
Ответы на вопрос 1
maxaon
@maxaon
Кажется вам надо не 'ngValue', который используется для select и radio, а 'ngModel'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы