で約束を終えた後に応答しませんは.then私は別のコントローラにイベントをブロードキャストするコントローラを持っている角度
$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;
そして最後に、私は、だから、すべての関連するコードのdelete
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();
});
に応答routesファイルを持っています。今問題です。最初のコントローラで$scope.removeMovie
関数を呼び出すと、クリックされたレコードがデータベースから削除され、ファクトリにはsuccess factory
ログがコンソールに表示されます。私は成功し、工場機能の後.then
コールバックに入ることができないのはなぜしかし、私は
$scope.$on('onremoveMovieEvent', function (event, movie) {
movieFactory.removeMovie(movie).then(function(){
Notification.success(movie.title + ' has been removed from your watchlist')
})
});
第二のコントローラから.then
コールバックに得ることができませんか?
私はこれをどのように逃しましたか?ありがとう。 –
問題ありません...そしてそれはどういうことかよく分かっています...時々、コーディング中にこのようなものに盲目的になることがあります:P – thepio
そう、私はちょうどコーヒーをつかんでいるべきです。しかし、それを指摘してくれてありがとう。私は理由のために正しい答えのための最も低い担当者を選択することに決めました:)。 –