我试图在$ http.post成功后在我的视图上更新DOM(ng-repeat)(调用$ http.get),但它不起作用。
我使用ng-click调用我的$ http.get测试它确实更新了DOM,所以我很困惑发生了什么。
这是我的$ http.post:
$scope.save = function(){
//url, data and config here...
$http.post(url, data, configPost).then(function(data) {
if(data.status == 200){
if ($scope.formData.comment) {
$scope.formData.comment = '';
$scope.response.push(initget()); // this is where I'm calling the $http get
}
} else {
console.log('post error');
}
});
};
我使用以下函数进行了测试,它在$ http.post:
之外工作$scope.updateDOM = function() {
$scope.response.push(initget());
};
<a href="#" ng-click="updateDOM()">update dom</a>
提前致谢。
答案 0 :(得分:1)
如果我提交(发布)一些数据后我想正确使用剩余数据刷新视图 我想你可以试试:
$http.get('/someUrl', config).then(function(data){$scope.response = data;})
在POST调用的回调成功中而不是推送。即代替:
$scope.response.push(initget());
P.S。我假设你在$ scope.response上使用ng-repeat。
答案 1 :(得分:1)
问题是因为“ng-controller”在html模板中被定义了两次。