2016-11-08 14 views
0

$qサービスを次のように試みましたが、ブラウザはまだ応答を待っていません。私はすでにソリューションを見つけ出すためにほぼ一日を費やしましたが、私も$timeoutを試しました。 `$ http`alreadyは約束を返します。ここではブラウザがanglejsのapi応答/ http呼び出し応答を待つようにします

login.controller("loginCtrl", ['$scope', '$rootScope', '$filter', '$window', '$http', 'APIService', 'localStorageService', 'doAlert', '$translate', '$q', '$timeout', 

    function ($scope, $rootScope, $filter, $window, $http, APIService, localStorageService, doAlert, $translate, $q, $timeout) { 
    $scope.isLogOut = true; 

    $(window).unload(function() { 
     $rootScope.$broadcast('onUnload'); 
    }); 
    $scope.$on('onUnload', function (e) { 
     var deferred = $q.defer(); 
     $http.get(url). 
       success(function (data, status, headers, config) { 
        deferred.resolve(data); 
       }). 
       error(function (data, status, headers, config) { 
        deferred.reject(status); 
       }); 
     return deferred.promise; 
    }); 
+0

をデータを処理するためにコールバックを使用したサンプルです。ですから、 '$ q'の必要はありません。 – Aer0

+0

これも試しました。しかし、幸運はありません。$ http.get(url).success(function(response){ response.data; }); – user2617611

+0

成功とエラーの代わりに '$ http.then(function(success){...}、function(error){...})'を使います。また、ドキュメントを見てみることもできます:https://docs.angularjs.org/api/ng/service/$http – Aer0

答えて

0

は私がちょうどコト戻って私のユーティリティから

function get(url, callback, obj) { 
    $http.get(url, obj) 
    .then(function (response) { 
     callback(response.data); 
    }, function() { 
     notification.error(PLEASE_CONTACT_SYS_ADMIN); 
    }); 
} 
+0

私はangular.min.jsを取得しています:81 ReferenceError:コールバックが定義されていません。 $ on( 'onUnload')イベントハンドラを$ nで少し詳しく説明できますか?これに新しいもの。 – user2617611

関連する問題