【问题标题】:Use external JavaScript file's in angular 7在 Angular 7 中使用外部 JavaScript 文件
【发布时间】:2018-12-03 18:18:48
【问题描述】:

我正在尝试在 Angular 7 项目中使用外部 JavaScript 文件,为此我已将多个 JavaScript 文件添加到 angular.json 文件中,如图所示

JavaScript files added in angular.json file

并在页面上加载默认的多个 JavaScript 文件,并使用任何参考手册,从它们被引用的地方。

请建议在 Angular 7 中使用外部 JavaScript 文件的正确方法,并建议我们应该如何在 Angular 7 中使用包 JavaScript 文件。

提前致谢。

【问题讨论】:

  • 你做错了什么?
  • 请不要使用图片链接。有些人无法访问。将代码直接添加到您的问题中。谢谢。
  • 您使用的是 npm 还是这只是一些文件?只要是正确的模块,使用import ... 就可以解决问题
  • 为什么要将 jQuery 导入 Angular?毛。
  • 在 Angular 7 中哪里提到了这些文件 - 请对 @angular/cli 做一些研究,当你做 ng serve 或 @ 时会发生什么987654325@等

标签: javascript angular angular7


【解决方案1】:

要将 jQuery 导入 Angular 应用程序,您需要正确安装它。 有意见的回答如下。

  1. npm install jquery --save
  2. import $ from 'jquery';
  3. 使用 jQuery
  4. 仔细思考为什么你还在使用 jQuery

https://stackblitz.com/edit/angular-8kcpz2?file=src%2Fapp%2Fhello.component.ts

import { Component, Input } from '@angular/core';
import $ from 'jquery';

@Component({
  selector: 'hello',
  template: `<h1>Why are you still using jquery? </h1>`,
  styles: [`h1 { font-family: Lato; }`]
})
export class HelloComponent implements OnInit  {
  @Input() name: string;
  consturctor() {}
  ngOnInit() {
    alert($('h1').text())
  }
}

您无需将其添加到您的 angular.json 文件中。

【讨论】:

  • 感谢@mwilson 分享这个答案,但我想知道,正如我之前提到的,在浏览器上加载了一些 JavaScript 文件而没有任何引用,这些文件在哪里配置,正如你的回答, import { Component, Input } from '@angular/core'; Jquery 是使用这个加载的,但是在哪里提到了这些文件。抱歉,如果我要问一些有用的东西,我是 Angular 的新手
  • 这是一个很难回答的问题,如果不是不可能的话。 Angulars Webpack 捆绑过程将引入任何被引用的东西。因此,假设您想使用引导程序(就像您正在做的那样),然后使用npm install bootstrap 安装引导程序。好。 bootstrap 需要 jquery 和其他几个模块,因此也将安装这些模块。您可能没有显式安装 jQuery,但您正在使用需要它的包。
  • 有一些工具可以帮助您找出需要 jQuery 的东西,但从屏幕截图来看,引导程序可能是罪魁祸首。您可以在 Angular 应用程序中加载脚本的唯一地方是通过 index.html 中的直接脚本标记、将脚本添加到 angular.json 文件、通过 npm 导入以及 webpack 进程中的任何其他直接引用。
  • 现在我只在 angular.json 文件中添加了三个与其他文件没有任何依赖关系的文件 ` "styles": [ "src/styles.scss" ], "scripts": [ " src/assets/scripts/fastclick/fastclick.min.js", "src/assets/scripts/adminlte/adminlte.min.js", "src/assets/scripts/adminlte/demo.js" ] ` 但它们仍然是脚本标签中未显示在浏览器中(未显示在浏览器中)。
  • 那是因为您没有正确导入它们。您需要了解有关 Angular 工作原理的更多信息。 Angular 不是你可以只输入一个脚本并期望它工作的东西。您需要使用 es6 import 语句并使用 npm 来处理第三部分库。如果您有一个正在尝试使用的自定义脚本并且它已经过时了,只需将它作为一个脚本标签和declare 一个全局变量放在 index.html 中,以便 TypeScript 可以正确地忽略它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-10
  • 2011-02-04
  • 1970-01-01
相关资源
最近更新 更多