Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular 11 HTML模板到Angular_Javascript_Angular - Fatal编程技术网

Javascript Angular 11 HTML模板到Angular

Javascript Angular 11 HTML模板到Angular,javascript,angular,Javascript,Angular,我一直在尝试将Porto Admin HTML模板传输到Angular。我为模板添加了CSS和JS依赖项,当我使用index.html中的所有html代码运行它时,一切正常。 一旦我将代码移动到app.component.html,一切都会中断。 我尝试将ViewEncapsulation设置为None,但这并没有改变任何事情。我在想这可能是角管道的运行方式?我甚至尝试从app.module.ts手动注入脚本 你知道原因是什么吗?我该怎么做? 我还将app root的选择器更改为“[app ro

我一直在尝试将Porto Admin HTML模板传输到Angular。我为模板添加了CSS和JS依赖项,当我使用index.html中的所有html代码运行它时,一切正常。 一旦我将代码移动到app.component.html,一切都会中断。 我尝试将ViewEncapsulation设置为None,但这并没有改变任何事情。我在想这可能是角管道的运行方式?我甚至尝试从app.module.ts手动注入脚本 你知道原因是什么吗?我该怎么做? 我还将app root的选择器更改为“[app root]”,并将其注入元素。这也失败了

编辑: 下面是一个指向已清理的简化代码库的存储库链接。

我不能分享这些资产,原因很明显。 但基本上,如果您将html从app root(app.component.html)移动到index.html,它就可以正常工作


2问题,制作Porto Admin模板的人的html中有随机脚本段,出于安全原因,这些脚本段不会在组件中运行。最后,看起来approot是在索引脚本之后添加的,因此一些JS查找失败

外卖:

  • 为了安全起见,Angular 2/6-11组件阻止.html中的脚本

  • 看起来情况是Angular从 然后加载app root下的内容,因此JS文件 通过id、类、名称在其余元素之前执行 插入文档的一部分,因此失败。我对文件进行了AfterViewInit注入

      ngAfterViewInit(): void {
    let script: any = [];
    let sources: any[];
    sources = [
      "/assets/js/theme.js",
      "/assets/js/theme.init.js",
      "/assets/js/examples/examples.dashboard.js"
    ]
    for (let index = 0; index < sources.length; index++) {
      script[index] = document.createElement('script');
      document.body.appendChild(script[index]);
      script[index].id = "dynamic-assets" + index;
      script[index].src = sources[index];
    } }
    
    ngAfterViewInit():void{
    让脚本:any=[];
    信息来源:任何[];
    来源=[
    “/assets/js/theme.js”,
    “/assets/js/theme.init.js”,
    “/assets/js/examples/examples.dashboard.js”
    ]
    for(让index=0;index

  • 也许你可以在没有资产的git回购中添加一些代码片段。我想我已经弄明白了。2个问题,制作porto的人在他们的html中有随机的脚本段,出于安全原因,这些脚本段不会在组件中运行。最后,它看起来像是在索引脚本之后添加了一个应用程序根,因此一些JS查找失败。