首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在angular中调用外部jQuery函数

如何在angular中调用外部jQuery函数
EN

Stack Overflow用户
提问于 2018-05-30 21:49:54
回答 1查看 1.1K关注 0票数 1

我正在做一个Angular CLI项目,在这个项目中我需要调用一些jQuery函数。

我已经在angular.json文件中包含了我的js:

代码语言:javascript
复制
"scripts": [
    "node_modules/jquery/dist/jquery.min.js",
    "src/custom.js"
]

jQuery函数

代码语言:javascript
复制
function A() { alert('A'); }
function B() { alert('B'); }

我在需要调用以下jQuery函数的组件中导入了jQuery:

代码语言:javascript
复制
import * as $ from 'jquery';

tsconfig.app.json

代码语言:javascript
复制
{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/app",
    "allowJs": true,
    "baseUrl": "./",
    "module": "es2015",
    "types": []
  },
  "exclude": [
    "test.ts",
    "**/*.spec.ts"
  ]
}

现在,如何在我的组件中导入custom.js,以及如何调用这些函数A和B?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-30 22:13:48

如果你还没有安装jquery的类型,我推荐你这样做:

代码语言:javascript
复制
npm install --save @types/jquery

因此,您只需在组件/服务中导入jQuery (jquery)即可使用它:

代码语言:javascript
复制
import 'jquery'; 

如果在编译或build应用程序时遇到问题,可以通过在(<any> ...)(... as any)中包装选择器来解决

代码语言:javascript
复制
// Use this
(<any> $('.myElement')).A();

// or this
($('.myElement') as any).A();

更新(请参阅注释)

要在页面就绪后执行代码,请尝试对主要组件(app-root)实现AfterViewInit

代码语言:javascript
复制
import { Component, OnInit, AfterViewInit } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit, AfterViewInit {

  constructor(private someService: SomeService) { }

  ngAfterViewInit() {
    this.someService.someFunction();
  }
}

documentation for AfterViewInit

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50606429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档