javascript - Angular 8 项目中的外部 .js 文件

标签 javascript angular

我尝试从 Angular 组件调用 .js 文件中的函数,但收到错误“ERROR ReferenceError:myTest 未在 TechnologiesComponent.onClick 中定义”。

我已按照here描述的步骤进行操作,所以我在 src 文件夹中创建了一个名为 custom.js 的文件。 screenshot

该文件包含以下内容:

function myTest() {
  alert('Welcome to custom js');
}

$(function() {
  alert('Hello, custom js');
});

我已将脚本添加到我的 angular.json 的脚本数组中,如下所示:

        "tsConfig": "tsconfig.app.json",
        "aot": false,
        "assets": [
          "src/assets"
        ],
        "styles": [
          "src/styles.css"
        ],
        "scripts": ["src/custom.js"]
      },

我想要使用 .js 文件的 .ts 文件如下所示:

import { Component } from '@angular/core';

declare const myTest: any;

@Component({
  selector: 'app-technologies',
  templateUrl: './technologies.component.html',
  styleUrls: ['./technologies.component.css']
})
export class TechnologiesComponent {
  onClick() {
    myTest();
  }
}

一个按钮已添加到我的模板中: 点我

按下按钮时,会抛出错误“ERROR ReferenceError:myTest 未在 TechnologiesComponent.onClick 中定义”。为什么?

最佳答案

将你的函数声明为变量(在 JS 中两者是相同的)

自定义.js

myTest = function(){
   alert('Welcome to custom js');
}

另外,验证脚本是否在最终版本中导入

如果您使用ngserve,您可能需要重新构建

关于javascript - Angular 8 项目中的外部 .js 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59421997/

相关文章:

javascript - Magento 管理面板 - 下拉菜单不起作用/显示

css - 样式化第 3 方 Angular 组件

javascript - Angular 4 通用延迟加载错误

Angular MatPaginator 和 Azure 表存储

javascript - 只读属性

javascript - Handlebars : not able to compile?

javascript - 从 Javascript 中的字符串中删除尾随字符

javascript - 在canvas中上传多张图片转换为一张图片(Html5)

excel - 如何格式化由 Angular 下的 xlsx 包生成的工作簿中的单元格

angular - StencilJS 是否可以作为 Ionic 中的开发选项使用?