Angular.js>如何管理配置

时间:2014-03-04 08:29:45

标签: php angularjs

我遇到了将配置传递给角度应用程序的问题。我的问题是

  1. 我们将配置存储在数据库中,到目前为止它是与
  2. 通信的Web服务的URL
  3. 页面由PHP呈现
  4. 如何将存储在数据库中的网址传递给ng-app?

    到目前为止,我有硬编码的services.js

    app.constant('config', {ws_url: 'ws://domain/ws'});
    
    app.factory('wampy', function ($rootScope, config) {
    
      var url =  config.ws_url;
      var ws = new Wampy(url, { autoReconnect: true });
    
      return {
        something: function () {
            console.log(url);   // usage of url
        }
      }
    
    }
    

    然后它被包含在主html代码(index.php)

    <head>
      <script type="text/javascript" src="http://dev.local/js/ng/app.js"></script>
      <script type="text/javascript" src="http://dev.local/js/ng/services.js"></script>
    </head>
    

    但它可以修改/移动到其他地方。

    有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您可以将php呈现的javascript片段转换为脚本标记,如此

$config = array('ws_url' => 'ws://domain/ws');
$jsonConfig = json_encode($config);

$snippet = <<<EOS
    <script type="text/javascript">
        angular.module('appName').constant('config', $jsonConfig);
    </script>
EOS;

然后在页面的某处输出此$snippet