2015-07-13 7 views
0

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

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

Я пробовал много разных способов заставить это работать, но все они дают мне ряд ошибок.

Моих конфигурации модули выглядят следующим образом

(function(){ 
    angular.module('favoriteeats.config') 
    .constant('GLOBAL_CONFIG', { 
     'base_uri': '".url()."' 
    }); 
}); 

Мой главный (сгущенный) модуль выглядит следующим образом. Примечание. Я использую его с шаблоном клинка для скобок.

(function(){ 
    var app = angular.module('favoriteeats', ['favoriteeats.config','ngResource'], function($interpolateProvider) { 
     $interpolateProvider.startSymbol('<%'); 
     $interpolateProvider.endSymbol('%>'); 
})(); 

Мой контроллер выглядит следующим образом.

(function(){ 
    var app = angular.module('favoriteeats'); 
    app.controller('EntrustRolePermissions', function($scope, $controller) { 
     angular.extend(this, $controller('BaseController', {$scope: $scope})); 
     var vm = this; 
     vm.roles = [ ]; 
     vm.user_roles = [ ]; 

     vm.updateRoles = function(){ 
      ret = vm.restApi('role','GET'); 
      console.log(ret); 
     } 

     vm.updateRoles(); 

    }) //end contoller 

})(); 

Когда я включаю скрипт конфигурационного модуля в голову, я получаю эту ошибку.

«Ошибка: [$ Инжектор: modulerr] Не удалось создать экземпляр модуля favoriteeats из-за: [$ инжектором: modulerr] Не удалось создать экземпляр модуля favoriteeats.config за счет: [$ Инжектор: nomod] модуль«favoriteeats.config 'не доступно! Вы либо ошибочно написали имя модуля, либо забыли его загрузить. Если регистрация модуля гарантирует, что вы укажете зависимости как второй аргумент. "

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

Если я добавлю скрипт конфигурационного модуля в отдельный JS-файл и добавлю его до или после основного файла js модуля, я получаю ту же ошибку.

Единственный способ это похоже на работу, если я включен в тот же `(функция() {» контейнера в качестве основного модуля. IE

(function(){ 
    angular.module('favoriteeats.config') 
     .constant('GLOBAL_CONFIG', { 
      'base_uri': '".url()."' 
     }); 

    var app = angular.module('favoriteeats', ['favoriteeats.config','ngResource'], function($interpolateProvider) { 
    $interpolateProvider.startSymbol('<%'); 
    $interpolateProvider.endSymbol('%>'); 
})(); 

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

ответ

0

Вы должны объявить модуль с указанием его зависимости (в данном случае пустой массив), а затем вы должны выполнить функцию:

(function(){ 
    angular.module('favoriteeats.config', []) 
    .constant('GLOBAL_CONFIG', { 
     'base_uri': '".url()."' 
    }); 
})(); 
0

у вас есть неисправный IIFE

(function(){ 
    angular.module('favoriteeats.config') 
    .constant('GLOBAL_CONFIG', { 
     'base_uri': '".url()."' 
    }); 
}); // This does not close the IIFE. 

изменить его на:..

(function(){ 
    angular.module('favoriteeats.config') 
    .constant('GLOBAL_CONFIG', { 
     'base_uri': '".url()."' 
    }); 
}()); // or })(); 

Редактировать; Я даже не обращал внимания на то, что вы не определяете свой модуль, а скорее ссылаетесь на него. Как @joao и @mithon предложил - добавить скобки:

angular.module('favoriteeats.config', []) 
0

Вы ссылаетесь на модуль «favoriteeats.config», а не на его определение. Если вы добавите пустой список зависимостей, он должен работать.

angular.module('favoriteeats.config', []) 
Смежные вопросы