2016-01-20 62 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。那麼它更容易在你的測試中嘲笑這些值。

相關問題