2016-12-11 3 views
0

Я пытаюсь написать фабрику перехватчика $ httpProvider, но столкнувшись с проблемами, я думаю, что это с заводским синтаксисом. Ошибка: «Не удалось создать экземпляр модуля ...» при добавлении фабрики в зависимость от функции конфигурации.Экспорт AngularJS завод

Таким образом, мой вопрос заключается в том, как написать фабрику перехватчика, которая может быть экспортирована в конфигурационную функцию?

// Factory 
export class GlinterceptorFactory { 
    constructor ($http, $q, $rootScope, $log) { 
    'ngInject'; 
    this.$http = $http; 
    this.$q = $q; 
    this.$rootScope = $rootScope; 
    this.$log = $log; 
    } 

    request(config) { 
    return this.$log.log('request config factory: ', config); 
    } 

} 

// Config function. 
export function config ($logProvider, $httpProvider, glinterceptor) { 
    'ngInject'; 
    $logProvider.debugEnabled(true); 
    console.log(glinterceptor); 
    //$httpProvider.interceptors.push(glinterceptor); 

} 

    // Module js. 
import { config } from './index.config'; 
import { GlinterceptorFactory } from '../app/components/factories/glinterceptor.factory'; 

angular.module('ui', ['ngAnimate', 'ngCookies', 'ngTouch', 'ngSanitize', 'ngMessages', 'ngAria', 'ngResource', 'ui.router', 'ui.bootstrap', 'ngMap', 'chart.js', 'angular-carousel']) 
    .config(config) 
    .config(routerConfig) 
    .run(runBlock) 
    ... more 
    .factory('glinterceptor', GlinterceptorFactory) 
    ... more 

ответ

0

Класс должен быть создан, прежде чем его можно будет использовать. Фабрика пытается вызвать функцию и возвращает результат. Служба создает экземпляр функции или класса, который она получает. Используйте угловое обслуживание вместо завода.

.service('glinterceptor', GlinterceptorFactory) 

Вы можете найти рецепты для создания углового обслуживания и заводов под providers док.

Смежные вопросы