서버에서 관련된 모든 메소드와 콜백을 처리하기 위해 공장에 $q
을 주입 중입니다. 에서Promise가 각도로 컨트롤러로 돌아 오지 않습니다.
$scope.addArticle = function(){
console.log('add article route working');
ArticleService.addArticle($scope.article.title, $scope.article.content, $scope.article.url)
.then(function(){
refresh(); // here is where I am expecting it to return
}
.catch(function(){
$scope.error = true;
$scope.errorMessage = "Something went wrong!";
$scope.article = {};
}));
}
$scope.remove = function(id){
ArticleService.deleteArticle(id)
.then(function(){
refresh();
});
}
: 나는 MongoDB를 데이터베이스에 데이터를 추가하는 방법을 가지고, 나는 긍정적 인 대답을 받아 내가 약속을 해결하지만 컨트롤러 컨트롤러에서
에 다시 반환하지 않습니다 모든 잘 작동한다 내가 추가 기사, 왜 같은 문제를 가지고 있지 않습니다와 함께 일을 오전으로 공장
myApp.factory('ArticleService',
['$q', '$timeout', '$http',
function($q, $timeout, $http){
var article = null;
return({
addArticle : addArticle,
getArticles : getArticles,
deleteArticle : deleteArticle
});
function addArticle(title, content, imgUrl){
var date = getDatetime();
var deferred = $q.defer();
var article = {
title : title,
content : content,
imgUrl : imgUrl,
date
}
$http.post('user/edit/addArticle', article)
.then(function(response){
if(response.status === 200){
deferred.resolve();
}
});
return deferred.promise;
}
function getArticles(){
var deferred = $q.defer();
$http.get('user/edit/getArticles')
.then(function(result){
deferred.resolve(result.data);
/* article = result.data;
return article; */
}, function(error){
});
return deferred.promise;
}
function deleteArticle(id){
var deferred = $q.defer();
$http.delete('user/edit/deleteArticle/' + id)
.then(function(response){
if(response.status === 200){
deferred.resolve();
}
})
return deferred.promise;
}
function getDatetime() {
return (new Date);
};
}]);
삭제 문서 정확히 같은 방식으로 컨트롤러로 약속을 반환? 미리 감사드립니다.
@ Juana 다른 문제가있는 경우 알려주십시오. –
문법적인 문제였습니다. 감사합니다. – Juanca