2017-12-18 124 views
0

外部腳本,我需要到下一個腳本加載到我的角度應用angular5負載使用參數

<script src="https://maps.googleapis.com/maps/api/js?key={{google_key}}&libraries=places&language=DE_de"></script> 

正如我知道我可以把全球JS來.angular-cli.json(不適用於外部腳本工作)或index.html,但我如何添加參數(google_key)?

+0

是你的谷歌關鍵改變你的應用程序的整個生命週期?我認爲params對於動態內容很有用,在用戶呈現前端之前可能會經常改變或者未知。在google api key的情況下,我建議在構建過程中替換運行時可能會更好(例如,將它放在index.html中,並在構建應用程序之前通過腳本) –

+0

@BenediktSchmidt它不是動態的 - 正確。你是否建議類似gulp/grunt解決方案? –

+1

你是通過angular-cli建設嗎?我目前正在做類似的事情,我只是在angular-cli構建更新我的'index.html'後運行一個腳本。我將這個調用結合在一個npm作業中,它可能看起來像這樣'ng build && node _yourHtmlUpdateFile_' –

回答

1

用於index.html中動態腳本的更快速的解決方案是通過ID引用它和設定從app.component.ts src屬性:

googleApi = `https://maps.googleapis.com/maps/api/js?key= 
${environment.google_key}&libraries=places&language=DE_de` 

constructor(@Inject(DOCUMENT) private document: any) {} 

ngOnInit() { 
    this.document.getElementById('theId').setAttribute('src', this.googleApi) 
} 

但是,正如在評論建議的,在這種情況下將它作爲構建過程的一部分可能是更好的解決方案。

+0

謝謝,它會工作,但我認爲應該有一些解決方案從箱子沒有黑客 –