2015-06-05 5 views
0

У меня возникли проблемы при попытке загрузить библиотеку углового кеша в мою службу. Я использовал bower для добавления углового кеша в свой проект, и он успешно добавлен. Когда я отладка коды службы на Chrome я вижу на вкладке «Сети», что угловой кэш загружен:Как вставить стороннюю библиотеку в службу angular.js

Name: angular-cache.js 
Method: GET 
Status: 200 
Type: script 
Initiator: require.js:1901 
Size: 6,5 kb 
Time: 16 ms 

Существует config.js файл, который я загрузил все мои библиотеки. Эта строка для углового кэша:

'angular-cache': '../bower_components/angular-cache/dist/angular-cache', 

и это линия внутри прокладки:

'angular-cache': ['angular'], 

И это услуга:

define(
    [ 'angular', 'services-module'], 
    function(angular, services) { 
     services.factory(
      'MyService', 
      [ 
      "$location", 
      "$interval", 
      "MyOtherService", 
      "CacheFactory", 
      function($location, $interval, otherService, cacheFactory) { 

       var service = { 
        myCachingFunction : function(parameters){ 

        }, 
        getCache : function(cacheId) { 

        } 
       } 
       return service; 
      } ]); 
}); 

Это ошибка, я получаю:

Error: [$injector:unpr] Unknown provider: CacheFactoryProvider 

This i s страница github углового кеша. Что мне не хватает?

+0

Является ли CacheFactoryProvider правильным корпусом? Поставщики чувствительны к регистру. –

+0

@WesleySkeen В документации по угловому кэшу они используют его так. – brainmassage

+0

Я считаю, что в дополнение к тому, что пишет в своем ответе Иоана Кукурузан, вы также должны закрепить «угловой кеш», чтобы зависеть от углового, чтобы они были загружены в правильном порядке. Если это не сработает, вероятно, вы должны добавить дополнительные сведения о своей конфигурации в вопросе. Вы также можете взглянуть на [угловое требование-ленивый] (https://github.com/nikospara/angular-require-lazy). –

ответ

1

вы пробовали это, я думаю, что это ваш service.js:

define(
['angular', 'services-module'], 
function(angular, services) { 
    services.factory(
     'MyService', 
     [ 
     "$location", 
     "$interval", 
     "MyOtherService", 
     "CacheFactory", 
     function($location, $interval, otherService, cacheFactory) { 

В вашем app.js:

define(
['angular', 'angular-cache'], 
function(angular) { 
    var myApp = angular.module('myApp', [ 'ngResource', 'app.controllers', 'app.directives', 'app.services', 'app.filters', 'app.routes', 'app.interceptors', 'angular-cache' ]); 

В config.js:

shim: { 
     'angular-cache': { 
     deps: ['angular'] 
     } 
    } 

Я предполагаю, что вы используете Require with Angular.

+0

Да , Но это не работает: Неизвестный поставщик: angular-cacheProvider – brainmassage

+0

Это ваш сервис, но где ваше приложение? Что-то вроде этого: angular.module ('', []) Вам нужно загрузить модуль: angular.module ('MYAPP', [ 'угловую-кэш']) и использовать мой код, указанный выше. Я обновил код –

+0

У меня есть эта строка в другом файле под названием app.js: var myApp = angular.module ('myApp', ['ngResource', 'app.controllers', 'app.directives', 'app.services ',' app.filters ',' app.routes ', \t \t \t' app.interceptors ']); – brainmassage

0

Вы хотите включить в качестве модуля, как это:

define(
    [ 'angular', 'services-module', 'angular-cache'], 
    function(angular, services, cache) { 
... 
+0

Я пробовал это раньше, но не работал – brainmassage

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