我正在尝试将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);
});
}
};
}]);
非常感谢任何帮助。