我正在发帖子请求创建笔记。在成功回调之后,我将新数据推送到笔记的范围内。但该页面未显示更新的笔记数组。 我的代码如下:
Controller.js
var populateNotes = function (err) {
$scope.notes = [];
if (err) {
return err;
}
for (var i = 0; i < NotesService.getNotes()
.length; i++) {
$scope.notes.push({
text: NotesService.getNotes()[i].note,
when: $moment(NotesService.getNotes()[
i].ct)
.fromNow()
})
};
console.log("notes: ", $scope.notes);
}
$scope.createNote = function () {
var data = {
note: $scope.notetext
};
model.createNote(id, aid, data, populateNotes);
}
我的html如下:
<tr ng-repeat="note in notes">
<td class="text-center">{{note.text}}</td>
<td class="text-center">{{note.when}}</td>
</tr>
问题是,在成功创建帖子请求时,dom应该自动更新并显示新创建的音符。但这不会发生。谁能让我知道我做错了什么?
答案 0 :(得分:0)
Angular会在事件(点击,焦点,...)发生后立即更新视图。在您的情况下,后期响应在渲染后发生,从而导致过时的视图。您需要告诉它应用更改:
var populateNotes = function (err) {
...
console.log("notes: ", $scope.notes);
$scope.$apply('notes');
}