【发布时间】:2015-12-05 18:18:16
【问题描述】:
您好,我想将项目发布到服务器,每次成功添加后,使用 ng-repeat 自动将其添加到 DOM
<div class="" ng-repeat="book in books" >
<div id="eachBook">{{book.title}}</div>
</div>
要发布数据并上传图像文件,我使用 Jquery ajax 和 $state.go(".") 重新加载当前页面:
var fd = new FormData();
fd.append("file", bookImage);
$http({
method: 'POST',
url: "/someurl,
data: fd,
headers: {
'Content-Type': undefined
}
}).success(function(Image){
var book_obj = {
bookTitle: bookTitle,
bookImage: Image._id
};
$http.post("url to owner book", book_obj)
.success(function(data){
$scope.bookImage = data.bookImage;
$timeout(function(){
alert("success", "successfully added your book");
$state.transitionTo('book', {}, { reload: true });
},2000);
})
})
问题在于第一次添加,DOM 仍然是空的,即使我使用 $state 重新加载页面,它仍然无法用于第一次添加。最后我需要通过点击刷新手动刷新页面。
第一次添加后,它工作正常。每添加一本书,它就会自动添加到 DOM..
知道如何在不手动渲染页面的情况下自动启动第一个吗?使用 $timeout 延迟刷新没有效果。
【问题讨论】:
-
您如何在
books数组中添加book对象?真的很想看到.. -
只是一个简单的 jquery.ajax.. 对不起,让我补充问题
-
你不应该使用 jQuery ajax..你应该使用 angular 的
$http。看这个答案stackoverflow.com/a/34091011/2435473 -
我明白了,有道理...但是我需要同时上传一个图像文件,不知道如何使用 $http..
-
我使用 $http(request),但它最终与 $.ajax() 出现完全相同的问题。仍然没有发布第一篇文章。