Куда мне положить конфиги в приложении 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"});

Однажды объявленный как константа, вы вставляете его как зависимость, так же как и службу.

Другие вопросы по тегам