【发布时间】:2015-02-24 03:46:55
【问题描述】:
当我将任何子文档添加到现有文档时,文档会在 mongo db 中重新排列。
查询的结果被分配给angularjs代码中的模型。这会导致视图中数据的顺序发生变化。
如何停止自动重新排列文档?
每当我进行任何更改时,我都可以在 Robomongo 中看到这些文档重新排列。 所以我可以肯定地说,当对象被更新时,它们会在磁盘中重新排列。
是我做错了什么还是文档自动重新排列。
代码:
这里 allusersposts 在页面加载时来自控制器。
var basePost1 = Restangular.all('posts');
basePost1.getList().then(function(allusersposts) {
$scope.allusersposts = allusersposts;
});
标记:
<div class="list-group" data-ng-repeat="usersposts in allusersposts" >
<h4>{{usersposts.description}}</h4>
<!-- ng repeat for comments on each post -->
<div class="list-group" data-ng-repeat="eachcomment in usersposts.comments ">
<label>{{eachcomment.description}}</label>
</div>
<!--input comment -->
<textarea rows="3" data-ng-model='comment'></textarea>
<button data-ng-click="saveComment(usersposts,comment)" >comment</button>
</div>
当评论添加到任何帖子时,我将评论保存在数据库中,然后再次带回所有帖子并将其分配给 $scope.allusersposts。这导致查看帖子的顺序与以前不同。添加评论的帖子移动到列表中的其他位置。
$scope.saveComment=function(usersposts,comment){
var post_id=usersposts._id;
var basePost = Restangular.one('getSinglepost', post_id);
basePost.get().then(function(receiveSinglePost) {
var basePost = Restangular.one('getSinglepost', post_id);
var makePutdata={
'description':comment,
'user_id':$stateParams._id
}
basePost.put(makePutdata).then(function(allPosts) {
$scope.allusersposts=allPosts;
});
});
$scope.comment="";
};
【问题讨论】:
-
发布一些代码。你做了什么“改变”导致重新订购?
标签: angularjs mongodb mongoose