2016-01-01 2 views
1

У меня есть два угловых модуля, starter.constant, которые хранят все постоянные и стартерные сервисы, где находятся контроллеры.ReferenceError: BASE_URL не определен, Угловые зависимости JS

angular.module('starter.services', ['ui.bootstrap', 'ngTouch', 'ngCordova', 'ngStorage', 'starter.core']) 

.factory('examService', ["$http", "$ionicLoading", 'BASE_URL', function($http, $ionicLoading) { 
    return { 
    httpGet: function(url, data) { 
     $ionicLoading.show(); 
     return $http.get(BASE_URL + url, data); 
    }, 
    httpUpdate: function(url, data) { 
     $ionicLoading.show(); 
     return $http.patch(BASE_URL + url, data); 
    }, 
    httpPost: function(url, data) { 
     $ionicLoading.show(); 
     return $http.post(BASE_URL + url, data); 
    }, 
    httpDelete: function(url, data) { 
     $ionicLoading.show(); 
     return $http.delete(BASE_URL + url, data); 
    } 
    }; 
}]) 

Константы Модуль:

(function() { 
    'use strict'; 
    angular 
     .module('starter.core',[]) 
     .constant('BASE_URL', 'http://example'); 
})(); 

Однако, когда я иду в браузере я получаю следующее сообщение об ошибке:

ReferenceError: BASE_URL is not defined 

Линия, бросить эту ошибку в HttpGet функция

Любое предложение или заранее?

ответ

0

Вы должны вводить BASE_URL в вашей функции фабрики:

factory('examService', ["$http", "$ionicLoading", 'BASE_URL', function($http, $ionicLoading, BASE_URL) { 
+0

Там нет необходимости включать base_url перед функцией, я прав? Я имею в виду, что я могу сделать завод («examService», [«$ http», «$ ionicLoading», функция ($ http, $ ionicLoading, BASE_URL). –

+1

@CheBay Это сработает, но вы должны ввести все ваши зависимости. Таким образом, угловой будет знать, какая переменная используется в этом месте, когда ваш код получает минимальное значение в производстве. – Boris

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