【问题标题】:How to add custum attributes to js file loaded in Angular 8如何将自定义属性添加到 Angular 8 中加载的 js 文件
【发布时间】:2019-10-23 13:25:41
【问题描述】:

我正在练习 Angular,并尝试将现有的 Web 应用程序转换为 Angular。我在 HTML 页面中有一些代码,比如

<script src="js/rocket-loader.min.js" data-cf-settings="e61ee320c7ea21acda18972e-|49" defer=""></script>

我在 "scripts": ["src/assets/js/rocket-loader.min.js"] 中添加了 rocket-loader.min.js .json 并且正在加载,但由于 data-cf-settings="e61ee320c7ea21acda18972e-|49" defer="" 属性不可用,该页面实际上已中断。我找不到任何解决我的问题的方法。

我尝试过这种方式来添加脚本,但它没有构建。

          {
            "input": "src/assets/js/rocket-loader.min.js",
            "data-cf-settings": "e61ee320c7ea21acda18972e-|49",
            "defer":""
          }

【问题讨论】:

    标签: angular angular8


    【解决方案1】:

    在 angular.json 文件中,脚本是元素数组

    "scripts": [
              "src/assets/.../.../....min.js",
              "src/assets/vendor/.../..-stylist.min.js",
              "node_modules/ace-builds/src-min/ace.js",
              "node_modules/ace-builds/src-min/..-....js",
              "node_modules/ace-builds/..-../....js"
            ]
    

      ngAfterViewInit() {
        const s = document.createElement('script');
        s.type = 'text/javascript';
        s.setAttribute('data-attr', 'some value');
        s.src = 'http://somedomain.com/somescript';
        const body = document.getElementsByTagName('body')[0];
        body.appendChild(s);
    }
    

    如果你想添加多个属性

    .setAttribute('data', "icon: '.gif', url: '.html', target: 'page', output: '1'");
    

    或者你可以重复这行代码

     s.setAttribute('name', 'value');
    

    【讨论】:

    • 为了更清楚,我编辑了我的问题。我实际上是这样加载的。我想知道如何给js文件添加自定义属性。
    • 查看脚本标签动态实现
    • 你能解释一下这个答案吗?请添加更多说明,例如将此代码放在何处等...或者您能否根据我的问题提出正确的解决方案?
    • 把它放在使用这个库的component.ts文件中,或者你可以将它添加到app.component.ts中以便为所有项目连接它
    • 你确定这适用于 Angular 8 吗?实现此代码后,我在 app.component.ts 中遇到了很多错误。此代码是否需要任何导入语句?
    猜你喜欢
    • 1970-01-01
    • 2012-07-18
    • 2017-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-24
    • 2019-12-19
    • 1970-01-01
    相关资源
    最近更新 更多