Angular 2 - 使用带有jquery

时间:2016-10-08 00:18:40

标签: jquery angular typescript webpack

我使用Angular 2和jQuery,效果很好。我想使用像masonry-layout这样的外部库,但我遇到了问题:

  

jQuery(...)。masonry()不是函数

我使用webpack来获得JQuery的工作。

new ProvidePlugin({
    jQuery: 'jquery',
    $: 'jquery',
    jquery: 'jquery',
  })

test.component.ts

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

import 'masonry-layout';

@Component({
    selector: 'test',
    template: `
        <div class="container-fluid grid">
            <div class="grid-item">...</div>
            <div class="grid-item">...</div>
            <div class="grid-item">...</div>
            <div class="grid-item">...</div>
        </div>
    `
})
export class TestComponent {
    ngOnInit() {
        jQuery('.grid').masonry();
    }
}

有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:0)

首先,您应该将导入更改为:

rebase $currentbranch to head of $somebranch
rebase $somebranch onto $currentbranch

似乎配置更改不适用于此库:

import 'masonry-layout/dist/masonry.pkgd';

enter image description here 所以你可以尝试以下方法:

new webpack.ProvidePlugin({
  jQuery: 'jquery',
  $: 'jquery',
  jquery: 'jquery',
  'window.jQuery': 'jquery' <== this line
}),