将新记录添加到数据库时,更新注释数据的最佳方法是什么?我最近有这个代码工作正常,但我认为这种编码方式可能需要很长时间,如果我有大量的意见。任何帮助表示赞赏
function addComment(comment){
dataservice.addComment(comment).then(function(response){
if(response.status == 200){
vm.getArticleComments(); // this will make new request to backend to fetch all comments
comment.body = '';
}else{
return false;
}
});
}
我正在考虑推送新评论以查看响应代码是否为200
答案 0 :(得分:1)
IMO,更好地使用数组。
使用unshift()
方法添加ng-repeat
列表。
var data = [bar,bar2,bar3];
data.unshift(newItem);
//data = [newItem,bar,bar2,bar3];
在执行此操作之前,请确保已使用$http
成功填充数据库。
正如你所说,你想要推动,这也是一个不错的选择,但这会将新数据推到视图列表的末尾。
希望这可以帮助你:)
var app = angular.module('app', []);
app.controller('MainCtrl', ['$scope', function ($scope) {
$scope.items = [{
name: '1',
type: 'A'
}, {
name: '2',
type: 'B'
}];
$scope.prependItem = function () {
$scope.items.unshift({
name: '3',
type: 'C'
});
};
}]);
<!DOCTYPE html>
<html ng-app="app">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css" />
<script>document.write('<base href="' + document.location + '" />');</script>
<script src="//code.angularjs.org/1.2.6/angular.min.js"></script>
<script src="//code.angularjs.org/1.2.6/angular-route.min.js"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<div ng-repeat="item in items" watch-scope="item">
<div class="someClass">Item name: {{item.name}}</div>
<div class="anotherClass">Item type: {{item.type}}</div>
</div>
<button ng-click="prependItem()">Add New</button>
</body>
</html>