如何在工厂中使用Angular-promise-tracker?

时间:2013-11-29 18:18:53

标签: angularjs

我正在尝试将Angular-promise-tracker与来自工厂的服务一起使用。我几乎可以肯定我没有以正确的方式做到这一点......因为它不起作用。

我的需求:创建一个服务来管理当前正在加载的gif“。

我在这里定义了一个存储我的承诺状态的工厂:

    angular.module('fusseApp.services.loadTrack', ['ajoslin.promise-tracker'])

.factory('loadTrackFactory', ['promiseTracker', function(promiseTracker){

    var tracker = null;
    var trackerService = {};

    trackerService.giveMeSomeTrack = function(){
        tracker = promiseTracker('Loading');
    };

    trackerService.getTracker = function(){
        return tracker; 
    }

    return trackerService;

}]);

这是我的主控制器:

.controller('MainCtrl',     ['$scope','$location','authenticationFactory','notificationService','loadTrackFactory',
        function ($scope, $location, authentication, notificationService, loadTrackFactory) {

$scope.loadTracker = loadTrackFactory.getTracker(); 

        }]);

我的主控制器里面有一个div包含的模板:

  <div ng-show="loadTracker.active()" style="color: red; font-size: 50px;">
    Loading!
  </div>

我正在尝试使用我的服务:

fusseApp.factory('ArticleFactory'
    , ['$http', 'URI', 'notificationService', 'loadTrackFactory', '$timeout'
    , function ($http, URI, notificationService, loadTrackFactory, $timeout) {
    return {
        getArticleInfos: function (idEntrepot, codeArticle, callback) {

            **loadTrackFactory.giveMeSomeTrack();**

            $http.get(URI.GET_ARTICLE_URI + '?idEntrepot=' + idEntrepot
                    + '&codeArticle=' + codeArticle, 
                    {tracker: 'Loading'} //Pour le "chargement en cours"
                    ).
                success(function (data, status) {
                    if (status === 204) {
                        notificationService.pushInfo("Article introuvable.");
                    }
                    callback(data);
                });
        }
    };
}]);

非常感谢任何帮助。

0 个答案:

没有答案