Представление Angular.js не обновляется при обновлении вложенного массива $ scope
Я пытаюсь обновить представление вида angular.js при добавлении комментария. Мой код выглядит следующим образом:
<p>
<span class="username">{{comment.user}}</span> {{comment.message}}
</p>
<p class="time">
10 minutes ago
</p>
<img src="assets/img/samples/user2.jpg" alt="user2">
область действия обновляется при вводе:
$('.addComment').keypress(function(e) {
if(e.which == 10 || e.which == 13) {
$scope.currentItem.comments.push({
"user": "user3",
"message": $(this).val()
});
console.debug("currentItem", $scope.currentItem);
}
});
отладка $ scope.currentItem показывает, что комментарий был добавлен к нему, однако представление не делаетпоказать новый комментарий Я подозреваю, что $ scope отслеживается только на первом уровне и именно поэтому представление не 'т обновление. это тот случай? Если так, как я могу это исправить?
РЕШЕНИЕ: как Ajay предложил в своем ответе ниже, я поместил push-массив в функцию apply следующим образом:
var el=$(this);
$scope.$apply(function () {
$scope.currentChallenge.comments.push({
"user": $scope.currentUser,
"message": el.val()
});
});