簡體   English   中英

如何使用API​​ URL注入Angular應用

[英]How to inject angular app with api url

我正在構建使用節點API的角度應用程序。 我需要一種使用節點api的網址來引導角度代碼的方法。 我希望節點服務器具有一個保存自己的URL的配置文件,該URL可能會根據開發,測試,生產等(例如http://localhost:4000/apihttp://www.myproductionbox.com/api/v2而有所不同http://www.myproductionbox.com/api/v2 )。

從服務器配置文件獲取該URL並將其動態合並到有角度的源代碼中的最佳方法是什么?

我將翡翠用於html模板,使用這些模板我可以得到一些工作:

constants.jade

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

其中apiBaseUrl在配置文件中定義。 express應用程序按以下方式呈現玉文件:

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

這行得通,但感覺很笨拙。 有什么更好的方法?

我們使用內聯<script>來保存所有這些類型的配置參數。

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

這樣,您的角度應用程序仍可以存在於CDN或其他內容提供的外部文件中。

然后,在您的應用程序中,您需要做一些稍作修改的操作。

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

您還可以在應用程序中創建一個ConfigService ,以公開window.config 然后可以更輕松地在測試中模擬出這些值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM