Angularjs ленивый загрузил фабрику и регистрация HTTPS перехватчик не работает - PullRequest
0 голосов
/ 16 апреля 2019

Я использую angularjs, контроллер загрузки и регистрации, сервис и заводскую загрузку.

Мой файл конфигурации похож на Ответ Дэйва который используется для регистрации и отлично работает.

Теперь я хочу создать отдельный файл, содержащий определение фабрики, которое загружается лениво и используется как перехватчик. Для этой же цели я создал функцию app.interceptor в конфигурационном файле, который имеет определение как $httpProvider.interceptors.push('MyService'); но при отправке ajax-запроса он не будет вызывать. Любая идея, почему не работает Например: myapp.config.js

var app = angular.module('app', [])
app.config(
  function($controllerProvider, $provide, $compileProvider) {
    // Since the "shorthand" methods for component
    // definitions are no longer valid, we can just
    // override them to use the providers for post-
    // bootstrap loading.
    console.log("Config method executed.");
    // Let's keep the older references.
    app._controller = app.controller;
    app._service = app.service;
    app._factory = app.factory;
    app._value = app.value;
    app._directive = app.directive;
    app.controller = function(name, constructor) {
      console.log("controller...");
      console.log(name);
      console.dir(constructor);
      $controllerProvider.register(name, constructor);
      return (this);
    };
    // Provider-based service.
    app.service = function(name, constructor) {
      $provide.service(name, constructor);
      return (this);
    };
    // Provider-based factory.
    app.factory = function(name, factory) {
      $provide.factory(name, factory);
      return (this);
    };
    // Provider-based value.
    app.value = function(name, value) {
      $provide.value(name, value);
      return (this);
    };
    // Provider-based directive.
    app.directive = function(name, factory) {
      $compileProvider.directive(name, factory);
      return (this);
    };
    app.interceptor = function(name) {
     console.log("interceptor ----" + name)
     $httpProvider.interceptors.push(name);
     };
  });

MyFactory.js

var app = angular.module('app');
app.interceptor('myfactory');
app.factory('myfactory',  ['$q', '$location',function ($q, $location) {
   return {
         // optional method
         request: function(config) {
           // do something on success
            console.log("request config");
                        console.log(config);
           return config;
         },

         // optional method
        requestError: function(rejection) {
           // do something on error
            console.log("requestError");
                        console.log(rejection);
           return $q.reject(rejection);
         },



         // optional method
         response: function(response) {
           // do something on success
            console.log("response response");
                        console.log(response);
           return response;
         },

         // optional method
        responseError: function(rejection) {
           // do something on error
            console.log("responseError");
           console.log(rejection);

           return $q.reject(rejection);
         }

      }

}]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...