[英]Angular 9 : use external js script with condition
我是 Angular 9 的新手。
我有一个外部js脚本,我通过使用meta标签从后端获取了这个脚本的url。 我有一个函数返回一个布尔值,我想当这个方法返回 true 时我调用脚本,如果它是 false 什么都不做。
我从后端读取了网址:
<meta name="myScriptUrl" content="URLSCRIPT">
在 app.component.ts 中,我创建了两种方法,一种用于获取脚本的 url,另一种返回布尔值
public getUrlScrip(): string {
return this.configurationService.getConfig('myScriptUrl');
}
public isCheck(): boolean {
return (this.model.specificTest === anyString);
}
这是我可以使用脚本的特定组件(insert-js.component.ts),
@Component
export class insertJs implements OnInit, OnDestroy {
public usrlScript: string;
constructor(
private readonly appComponent: AppComponent;
}
ngOnInit() {
if (this.appComponent.isCheck) {
usrlScript = this.appComponent.getUrlScrip();
}
这是 insert-js.component.html
<script type="text/javascript" src="urlScript"></script> <script type="text/javascript"> document.addEventListener('DOMContentLoaded', function () { //set varriable in the script }, {once: true}); </script>
谢谢给我一些想法来做到这一点
您可以通过这种方式尝试 Renderer2:-
constructor(private renderer: Renderer2){}
addScriptToElement(src: string): HTMLScriptElement {
const script = document.createElement('script');
script.type = 'text/javascript';
script.src = src;
this.renderer.appendChild(document.body, script);
//use removeChild to remove the added tag on your condition
return script;
}
以这种方式调用此函数:-
this.addScriptToElement('https://widgets.skyscanner.net/widget-server/js/loader.js').onload = () => {
console.log('Loaded SkyScanner tag successfully!');
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.