【发布时间】:2020-06-09 15:40:49
【问题描述】:
我有一个使用本地脚本 sidebar.js 的侧边栏 Angular 组件。在src\app\sidebar\sidebar.component.ts,我尝试加载sidebar.js如下:
ngAfterViewInit(): void {
const s = document.createElement('script');
s.type = 'text/javascript';
s.src = 'src/app/sidebar/sidebar.js';
console.log('creating external script: ' + s.src);
this.elementRef.nativeElement.appendChild(s);
}
我收到了这个错误:
http://localhost:4201/src/app/sidebar/sidebar.js net::ERR_ABORTED 404(未找到)
是的,我在 angular.json 中也有这一行:
"scripts": [
...
"src/app/sidebar/sidebar.js"
]
以下也因 404 失败:
s.src = 'sidebar.js';
不幸的是,由于侧边栏组件位于我为客户构建的 Angular 模块中,因此我无法按照 My Local JavaScript file is not loaded in Angular 2 中的建议将 sidebar.js 放入 /assets 中。 /assets 目录位于我客户的代码中。此外,sidebar.js 包含这个逻辑:
const _R = document.querySelector('[type=range]');
_R.style.setProperty('--val', +_R.value);
_R.style.setProperty('--max', +_R.max);
_R.style.setProperty('--min', +_R.min);
这取决于 sidebar.component(位于我的模块中):
<input
class="border-0 slider"
type="range"
min="10"
[title]="scale"
step="5"
[(ngModel)]="scale"
max="200"
orient="vertical"
list="tickmarks"
/>
是的,我知道在 SO:
angular2: including thirdparty js scripts in component
script tag in angular2 template / hook when template dom is loaded
但它们都没有解决 sidebar.js 和 index.html 位于两个不同模块中的方面。
【问题讨论】:
标签: javascript angular