我试图通过从数据库中获取数据来更新数据列表。每次我添加数据时,它都不会更新视图,只有在刷新页面时才会更新视图。我已经尝试了一些使用$ scope.apply并重新排列代码位置的解决方案,这些并没有什么不同。我在这里错过了什么?以下是我的代码:
JS
up.settings.resize = {width: 80, height: 80, enabled: true};
HTML
//posting post
$scope.post = function(){
$http.post('/post',$scope.post_detail)
.success(function(response){
$scope.render();
});
}
//getting post
$scope.render = function(){
$http.get('/post')
.success(function(response){
$scope.renderPost(response);
});
}
//view post
$scope.renderPost = function(response){
$scope.posts = response;
}
$scope.remove_post = function(id){
$http.delete('/post/'+id).success(function(response){
$scope.render();
});
}
$scope.render();
注意:删除按钮在这里工作
答案 0 :(得分:1)
因为您只更新数据库。 将新添加的post_detail推送到post对象。
//posting post
$scope.post = function(){
$http.post('/post',$scope.post_detail)
.success(function(response){
$scope.post.push($scope.post_detail);
$scope.render();
});
}
答案 1 :(得分:1)
因为ng-repeat在DashboardCtrl范围之外。我猜你有一个DashboardCtrl div的父控制器和posts div,你在父控制器中启动$ scope.posts。
当你有
时$scope.renderPost = function(response){
$scope.posts = response;
}
它会更新子范围中的帖子。您可能需要执行以下操作:
$scope.$parent.posts = response;
或在<div class="jumbotron text-center" ng-controller="DashboardCtrl">...</div>
答案 2 :(得分:0)
我认为您对$ http.get(&#39; / post&#39;)的服务器响应是一个json对象数组
在这种情况下,该数组可以嵌套在数据属性
中second.jsp