Javascript AngularJS没有';t将新记录推入数组

Javascript AngularJS没有';t将新记录推入数组,javascript,ruby-on-rails,ruby,angularjs,push,Javascript,Ruby On Rails,Ruby,Angularjs,Push,我创建了一个新记录,该记录已成功添加到数据库中。那很好。 但问题是它不会更新现有记录的列表-这意味着推送功能似乎不起作用 这在控制器内部: $scope.posts = Posts.query(); ... $scope.saveForm = function(post) { var p = new Post(post); p.$save(function (response) { $scope.posts.push(angular.extend(p, response.id));

我创建了一个新记录,该记录已成功添加到数据库中。那很好。 但问题是它不会更新现有记录的列表-这意味着
推送功能似乎不起作用

这在控制器内部:

$scope.posts = Posts.query();
...
$scope.saveForm = function(post) {
  var p = new Post(post);
  p.$save(function (response) {
  $scope.posts.push(angular.extend(p, response.id));
    console.log('saved');
    console.log(response.id);
  });
};
我尝试只使用
push()
而不使用
angular.extend()
,还尝试添加
$scope.posts=posts.query()在控制器的末尾,但它没有帮助-新记录仍然没有添加到当前的帖子列表中

这可能是什么原因造成的?我在这里发现了类似的话题,但这并没有帮助我解决这个问题

多谢各位

编辑: 我在
console.log($scope.posts)中看到新帖子,它只是不出现在帖子列表中

EDIT2: 我还尝试了
$scope.$apply()push
命令后执行code>,但它会导致以下错误消息:

Error: [$rootScope:inprog] $digest already in progress
EDIT3: 我发现当我试图删除一条记录时,列表也不会更新(只有在刷新之后)

EDIT4: 当我添加一条新记录时,JS中是这个输出(新记录已正确保存,只是没有在所有项目所在的列表中更新):

ID
可以通过
response.ID.$oid

访问,这对我很有用

p.$save().then(function(response){ 
     $scope.posts.push(response.id) 
});

角度延伸不保存列表/数组。
它使用新项扩展旧列表/数组。

扩展不应该是
angular.extend(p,{id:response.id})
?您需要提供更多的代码。Angular使用标准的js数组push,它工作得非常好。在将p的o扩展部分推到POST中之前,请记录以查看p是什么printed@charlietfl-谢谢,我尝试了这个选项,但不幸的是没有帮助。@MohammadJavad Seyyedi-
p
包含一个对象-
{id:object,title:“asdgasdhc”,body:“cc”,starred:null,created_:“2015-10-26T18:41:52.686Z”…}
-应该没问题。该死,还是没什么。它仍然没有将新记录添加到现有记录列表中。
p.$save().then(function(response){ 
     $scope.posts.push(response.id) 
});