整理承諾響應後我有控制器,其中我廣播在不同的控制器的事件:。然後在不角
getmovieController.js:
$scope.removeMovie = function(movie){
$rootScope.$broadcast('onremoveMovieEvent', movie);
};
這是其他控制器在我稱之爲
$scope.$on('onremoveMovieEvent', function (event, movie) {
movieFactory.removeMovie(movie).then(function(){
Notification.success(movie.title + ' has been removed from your watchlist')
})
});
:請求的函數工廠內
moviesearchController.js功能210
這是帶有removeMovie功能的工廠。
movieFactory.js
var factory = {}
factory.removeMovie = function (movie) {
var deferred = $q.defer();
$http({
method: 'DELETE',
url: '/movies',
data: movie,
headers: {"Content-Type": "application/json;charset=utf-8"}
})
.success(function(){
console.log('success factory');
})
.catch(function(){
});
return deferred.promise;
};
return factory;
最後我有一個響應刪除
movies.js
router.delete('/', function(req,res){
pool.getConnection(function(err, connection){
connection.query('DELETE FROM movies WHERE id= ?', [req.body.id], function(err, result) {
if (err) {
throw err;
} else {
console.log('removed')
}
});
connection.release();
});
res.status(204).end();
});
所以這是所有相關的代碼路徑文件。現在的問題。當我在第一個控制器中調用$scope.removeMovie
函數時,單擊的記錄將從數據庫中刪除,工廠將在控制檯中顯示success factory
日誌。但我不能從第二控制器
$scope.$on('onremoveMovieEvent', function (event, movie) {
movieFactory.removeMovie(movie).then(function(){
Notification.success(movie.title + ' has been removed from your watchlist')
})
});
爲什麼我不能進入一個全成工廠函數後.then
回調獲取到.then
回調?
啊geez我怎麼錯過了這個。呃謝謝。 –
沒問題......而且你知道它是如何的......有時候你只是在編碼時盲目地看到這樣的東西:P – thepio
是的,我應該只是喝了一些咖啡。感謝您指出它。我決定選擇最低的代表爲正確的答案,原因:)。 –