2015-10-08 2 views
1

Чтобы поддерживать свойства приложения, такие как BaseURL, мы использовали для создания файла .properties и извлекали его, когда это необходимо в Java-приложениях. В front-end angularJS приложении я могу создать файл .json и вызвать его с помощью метода $http.get().
Могу ли я использовать angularJS constants для этой функции вместо вызова $http? Будет ли проблема с безопасностью, если я использую URL в константах AngularJS?Свойства приложения в AngularJs

+1

есть * всегда * проблемы с безопасностью при работе с клиентской стороной JavaScript. Клиенты могут (и будут) открывать консоль браузера и проверять содержимое вашего JavaScript. и даже инструменты минимизации не могут помочь в запутывании. Если вы обеспокоены чувствительностью своей информации, держите ее на стороне сервера. Хотя вам все равно придется публиковать по крайней мере ** один URL-адрес на клиенте, тот, который заставит HTTP-вызов загружать остальную часть вашей конфигурации, которую можно было бы считать тем же сервером, что и остальные ваши данные? Я не уверен, что попытка скрыть ваши URL-адреса является серьезной проблемой. – Claies

+0

Oh! Я полностью упустил этот момент. Поэтому даже если я возьму URL-адрес из файла свойств, когда я сделаю вызов этого URL-адреса, это все равно будет отображаться в консоли браузера. Большое вам спасибо за материалы Claies. – DRB

ответ

2

В наших проектах мы клали всю такую ​​конфигурацию в одном файле формата JSON, т.е.

{ 
    "BASE_URL": "/myApp", 
    "VERSION": "1.0" 
} 

, а затем преобразовать этот файл на этапе сборки в угловом модуле, то есть:

agnular.module("myProject.config", []) 
.constant("BASE_URL", "/myApp") 
.constant("VERSION", "1.0"; 

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

angular.module("myProject", ["myProject.config"]); 

Плагины Grunt и gulp, которые могут автоматизировать его для вас.