Куда мне положить конфиги в приложении angularjs?
В моем угловом приложении у меня есть URL-адрес, к которому я подключаюсь для получения некоторых данных, сервер с поддержкой CORS.
Итак, до сих пор он был жестко запрограммирован в моем файле JavaScript:
server_url = "http://localhost:7888/api.php/json?id=2"
Теперь, на тестовом и производственном, эти URL, конечно, не действительны... и каждый раз, когда я делаю git pull
это отменяет мои настройки.
Куда бы я элегантно поместил такой конфиг в угловое приложение?
2 ответа
Ну, в общем, я бы использовал подход mean.js, его довольно легко реализовать, и он может быть полезен вам или кому-либо еще.
Вы должны записать из своего промежуточного программного обеспечения в свой основной HTML-файл в угловом формате (например, index.html), в вашем случае URL-адрес вашей конечной точки должен меняться в зависимости от вашей среды, просто для простоты, скажем, у нас есть dev (localhost) и производство (mydomain.com)
в вашем индексе HTML сделать простую запись:
<script type="text/javascript">
<?php
if(strpos( $_SERVER['HTTP_HOST'], 'mydomain.com') !== false){
print "var endpoint = '"+ $server_url+ "';"
} else{
print "var endpoint = '"+ $local_url+ "';"
}
?>
</script>
когда вы получили это в свой основной index.html, он доступен в угловом формате с помощью объекта window, так что вы можете превратить его в константу или службу.
это пример для константы:
angular.module('app').run(function () {
}).value('endpoint', window.endpoint);
Я не владею PHP, но я надеюсь, что вы можете понять мою точку зрения
Объявите это как константу. Если у вас есть приложение с именем App
:
angular.module('App', []).constant("urls", {"server_url":"http://localhost:7888/api.php/json?id=2"});
Однажды объявленный как константа, вы вставляете его как зависимость, так же как и службу.