gpt4 book ai didi

javascript - AngularJS 不会将新记录推送到数组中

转载 作者:太空宇宙 更新时间:2023-11-03 16:45:37 24 4
gpt4 key购买 nike

我新建一条记录,这条记录成功添加到数据库中。那挺好的。但问题是它不会更新现有记录列表 - 这意味着 push 功能似乎不起作用。

这是在 Controller 内部:

$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( ); 在 Controller 的末尾,但它没有帮助 - 新记录仍然没有添加到当前的帖子列表中。

这可能是什么原因造成的?我在 SO 上找到了类似的主题,但它并没有帮助我解决这个问题。

谢谢。

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

编辑 2:我在 push 命令之后也尝试了 $scope.$apply(); ,但它导致了这个错误消息:

Error: [$rootScope:inprog] $digest already in progress

编辑 3:我发现当我尝试删除记录时,列表也没有更新(仅在刷新后)。

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

Resource {id: Object, title: "hohohohooho", body: null, starred: null, created_at: "2015-10-27T04:00:06.943Z"…}

ID 可作为 response.id.$oid 访问。

最佳答案

这对我有用...

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

关于javascript - AngularJS 不会将新记录推送到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33351030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com