我正在尝试从AngularJS视图中删除项目。从这个角度来看,我正在通过指数&身份证。在JS控制器中,我从AngularJS数组/模型中 splice(index)。我将ID传递给 $ http.get 以调用对我的数据库的删除。一切正常。
...
直到我提出刷新页面的请求。我每5秒发出一次更新Angular模型的请求,并将任何新数据连接到它。但我发现它会搞砸我的索引值。我以为它正在重新排序我的索引:阅读this StackOverflow thread帮助确认了这一点。
我会在页面上为第3个项目推送删除,并从数据库中删除该ID。但是在我刷新页面之前它会从页面拼接错误的项目。 如何确保我始终传递正确的索引?
查看
<li ng-repeat="new in news | filter:query | orderBy:orderProp">
<div class="newsitem" id="newspost{{new.id}}">
<h4 ng-model="news.title">{{new.title}} </h4>
<p ng-model="news.text">{{new.text}}</p>
<a class="btn btn-info" ng-click="visible = true">View article</a>
<a ng-click="deleteNews(index,new.id)" class="btn btn-danger btn-mini">Delete</a>
</div>
</li>
controllers.js
$scope.deleteNews = function(index, id) {
$http.get('/ci/index.php/news/delete_news_ajax/'+id).success(function(){
$scope.news.splice(index, 1);
});
};
答案 0 :(得分:3)
传递new
:
<a ng-click="deleteNews(new)" ...>
然后在控制器功能中使用indexOf
:
$scope.deleteNews = function(newsItem) {
$http.get('/ci/index.php/news/delete_news_ajax/' + newsItem.id)).success(function() {
$scope.news.splice($scope.news.indexOf(newsItem), 1);
});
}