2017-02-21 58 views
0

Я хочу установить «базовый url» для моего углового приложения, чтобы я мог использовать относительные URL-адреса в моем проекте.Угловой: как передать значение из конфигурации в основной модуль, следуя Угловой лучшей практике, рекомендованной john papa

Я нашел понятие инициализации модуля конфигурации, который может хранить некоторые основные конфигурационные данные и модуль впоследствии может быть введено в основной модуль в качестве решения dependency.The является here

Но я также хочу, чтобы следовать джон папина angular best practices.

Как-то я не могу объединить обе эти концепции для получения результата.

Моя база контроллер, содержащий конфиги

angular.module('app.config', []) 
    .value('app.config', { 
    basePath: 'my-base-url' // Set your base path here 
}); 

Мой главный модуль приложения и контроллер

angular.module('userManage',['ngMaterial', 'ngPassword', 'app.config']) 
.controller('addUserController', addUserController); 


function addUserController($scope, $http, $window){ 
    $scope.pattern1 = /^[a-zA-Z0-9]*$/; 
    $scope.submitForm = function(){ 
    $http({ 
     method : 'POST', 
     url : 'my-relative-url',//(basePath+'relative url') 
     data : $scope.user, 
    }); 
}; 

}

В учебнике второй параметр передается в виде массива, а значение передается как параметр функции, Как реализовать это в рекомендуемом образом john papa

Существуют и другие решения, такие как определение базового значения url как константы и т. Д., Но определение базового модуля для хранения всех конфигураций кажется чистым и легким.

ответ

1

Ваше имя value вызовет у вас проблемы. Придерживайтесь имен, которые делают действительные имена переменных JavaScript.

Я также рекомендую использовать константу

angular.module('app.config', []) 
    .constant('BASE_PATH', 'my-base-url'); 

и

angular.module('userManage',['ngMaterial', 'ngPassword', 'app.config']) 
    .controller('addUserController', addUserController); 


function addUserController($scope, $http, $window, BASE_PATH) { 
    // now you can use BASE_PATH 

Резюмируя, включая app.config модуль как зависимость делает его константы, значения, заводы, услуги и другие поставщики доступны для инъекций.

+0

Это сделало трюк. Но зачем использовать константу вместо значения? Большое спасибо – jayadevkv

+1

@jayadevkv Значения могут быть изменены другими модулями, константы могут не быть. Кроме того, константы доступны в модулях 'config', которые могут быть полезны. – Phil

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

  • Нет связанных вопросов^_^