2016-01-20 31 views
0

我正在构建使用节点api的角度应用程序。我需要一种方法来引导节点api的URL的角码。我希望节点服务器拥有一个保存自己的url的配置文件,该文件可能因开发,测试,制作等而异(例如http://localhost:4000/apihttp://www.myproductionbox.com/api/v2)。如何使用api URL注入角度应用程序

什么是从服务器配置文件得到这个URL并将其合并到角度源代码中的最佳方式是什么?

我用的玉为HTML模板,我可以得到一些使用这些工作:

constants.jade

|angular.module('myApp', []).value('baseUrl', '#{apiBaseUrl}') 

其中apiBaseUrl是在配置文件中定义。快递应用呈现玉文件是这样的:

app.get('/constants', function(req, res) { 
    res.render('constants.jade', { apiBaseUrl: settings.api.baseUrl }) 
}) 

这工作,但感觉哈克。什么是更好的方法?

回答

1

我们使用内联<script>来保存所有这些类型的配置参数。如

<script> 
    window.config = { 
    baseUrl: '#{apiBaseUrl}' 
    }; 
</script> 

这样你的角度应用程序仍然可以生活在从cdn或其他东西服务的外部文件。

然后在你的应用程序中,你稍做修改就可以做你以前的工作。

angular.module('myApp', []).value('baseUrl', window.config.baseUrl) 

您还可以创建在您的应用程序,公开window.config一个ConfigService。那么它更容易在你的测试中嘲笑这些值。

相关问题