2016-02-18 3 views
0

У меня есть несколько проектов с угловыми проектами, каждая из которых содержит несколько страниц. Мне нужно поделиться общей конфигурацией для $ http, которая содержит некоторые общие настройки конфигурации и ответный перехватчик в этих проектах. Как я могу поделиться этой общей частью с несколькими проекциями angularjs. Каждый проект загружает angularjs и строится путем получения bower_dependencies.Обмен общей функциональностью/конфигурацией в нескольких проектах с угловыми объектами

Я не буду знать абсолютный путь, по которому модуль присутствует от каждого проекта.

В частности, мне нужно установить withCredentials в true и установить некоторые общие заголовки в запросе и установить общий ответный перехватчик для всех проектов. Есть ли способ поделиться этим?

Могу ли я построить общий модуль angularjs из этого, если да, то как это будет работать с bower_dependencies на месте?

+0

Вы можете разделить его на 2 часть: Если вы используете хрюкать, а затем использовать что-то вроде хрюканье-нг-константы, которая может принимать свойство конфигурации и создать модуль конфигурации вы можете вводить туда, где вам это нужно. Затем создайте отдельный проект для модуля ответного перехватчика, и каждый из ваших угловых проектов вытащит модуль ответного перехватчика через беседу. – DavidA

ответ

0

Вы можете сделать это на этапе конфигурации

app.config(['$httpProvider',function ($httpProvider) { 
    $httpProvider.defaults.withCredentials = true; 
    // REST OF DEFAULTS 
}]); 

Подробнее о $httpProviderhere и here

0

То, что вы описываете, поэтому модули настолько удобны

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

angular.module('myUniversalModule', []) 
    .constant('someconstant',123) 
    .factory('myUniversalInterceptor', function() { 
    var myInterceptor = { 
     ....  
    }; 
    return myInterceptor; 

    }).config(['$httpProvider', function($httpProvider) { 
     $httpProvider.interceptors.push('myUniversalInterceptor'); 
     $httpProvider.defaults.withCredentials = true; 
    } 
    ]); 

Затем вводит в любом приложении

angular.module('thisMainApp', ['myUniversalModule']) 
     .config(.... 
     .run(.... 
     .factory(.... 
     .constant(... 
     .controller(... 
Смежные вопросы