如何将jQuery导入Angular2 TypeScript项目?

sma*_*use 16 jquery typescript angular2-directives typescript-typings angular

我想在Angular2指令中包含一些jQuery代码.

我使用以下命令将Typings的jQuery库安装到我的项目中:

typings install dt~jquery --save --global

所以现在我的项目目录中有jquery文件夹下的typings/global文件夹.此外,我的typings.json文件中添加了以下新行:

{
    "globalDependencies": {
        "core-js": "registry:dt/core-js#0.0.0+20160602141332",
        "jasmine": "registry:dt/jasmine#2.2.0+20160621224255",
        "node": "registry:dt/node#6.0.0+20160807145350",
        "jquery": "registry:dt/jquery#1.10.0+20160908203239"
    }
}
Run Code Online (Sandbox Code Playgroud)

我开始编写一个新的Angular2指令(我导入到app-module文件中),但我不知道如何正确导入jQuery库.这是我的源文件:

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

@Directive({
    selector: "my-first-directive"
})

export class MyFirstDirective {
    constructor() {
        $(document).ready(function () {
            alert("Hello World");
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

但我不能使用,也不$也不是jQuery.你下一步怎么做?

Chi*_*may 24

第1步:在项目中获取jquery

npm install jquery
Run Code Online (Sandbox Code Playgroud)

第2步:为jquery添加类型

npm install -D @types/jquery
Run Code Online (Sandbox Code Playgroud)

第3步:在组件中使用它!

import * as $ from 'jquery';
Run Code Online (Sandbox Code Playgroud)

准备使用$!


vid*_*oon 1

您应该有一个typings.json 指向您的jquery 类型文件。然后:

systemjs.config(注意jquery的地图设置)

System.config({
    defaultJSExtensions: true,
    paths: {
        // paths serve as alias
        'npm:': 'node_modules/'
    },
    map: {
        'app':  'app',
        jquery: 'http://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js',
        material: 'npm:material-design-lite/dist/material.min.js',

        // angular bundles
        '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
        ....
    },
    packages: {
        app: { main: 'main', format: 'register', defaultExtension: 'js' },
        'rxjs': { defaultExtension: 'js' }
    },
});
Run Code Online (Sandbox Code Playgroud)

在组件中:

import $ from 'jquery';
Run Code Online (Sandbox Code Playgroud)

然后照常使用 $ 。