angular 7 cli应用中的jQuery datepicker无法正常运行

时间:2019-01-16 03:19:49

标签: jquery angular jquery-plugins

我试图让jquery datepicker在正在构建的应用程序中工作。我有一个角度cli应用程序。我在npm中添加了jquery-datepicker,在npm中添加了jquery。

package.json依赖性如下:

"@angular/animations": "~7.1.0",
"@angular/common": "~7.1.0",
"@angular/compiler": "~7.1.0",
"@angular/core": "~7.1.0",
"@angular/forms": "~7.1.0",
"@angular/platform-browser": "~7.1.0",
"@angular/platform-browser-dynamic": "~7.1.0",
"@angular/router": "~7.1.0",
"@ng-bootstrap/ng-bootstrap": "^4.0.1",
"bootstrap": "^4.2.1",
"core-js": "^2.5.4",
"font-awesome": "^4.7.0",
"jquery": "^3.3.1",
"jquery-datepicker": "^1.12.3",
"moment": "^2.23.0",
"popper.js": "^1.14.6",
"rxjs": "~6.3.3",
"tslib": "^1.9.0",
"web-animations-js": "^2.3.1",
"zone.js": "~0.8.26"

我得到的错误是:

  

错误TypeError:jquery__WEBPACK_IMPORTED_MODULE_4 __(...)。datepicker不是函数

pollyfills.ts如下:

import 'jquery';
import 'popper.js';
import 'bootstrap';
import 'moment';
import 'jquery-datepicker';

然后我的组件看起来像:

ngOnInit() {
    $( "#datepicker" ).datepicker();
  }

有人可以告诉我为什么会出现此错误吗?

1 个答案:

答案 0 :(得分:0)

  1. 在与main.ts相同的位置创建一个jquery.ts并将以下内容粘贴到其中,

    从'jquery'中将*导入为$;

    window ['jQuery'] = window ['$'] = $;

  2. 在main.ts的顶部插入以下内容,

    导入'jquery';

    导入'popper.js';

    导入'bootstrap';

    导入“时刻”;

    导入'jquery-datepicker';

  3. 从您的html或angular cli配置中删除对jquery或bootstrap的任何其他脚本引用。