角度材料2包含组件中的Jquery代码不起作用

时间:2017-06-16 09:32:06

标签: angular materialize

我使用angular2-materialize设置了一个项目。网页上的导航应由HamburgerMenuComponent处理。

所以我开始包含这个侧边栏:SideNav - Materialize

当我在浏览器控制台中手动插入$(".button-collapse").sideNav();时,它工作正常。 但我无法弄清楚如何将其包含在HamburgerMenuComponent

这是我到目前为止所尝试的但是它无效:

import { Component, OnInit, AfterViewInit } from '@angular/core';
import * as $ from 'jquery';

@Component({
  selector: 'app-hamburger-menu',
  templateUrl: './hamburger-menu.component.html',
  styleUrls: ['./hamburger-menu.component.css']
})
export class HamburgerMenuComponent implements OnInit, AfterViewInit {

  constructor() { }

  ngOnInit() {
  }

  ngAfterViewInit() {
     $(".button-collapse").sideNav();
  }
}
  

AppComponent.html:1 ERROR TypeError: WEBPACK_IMPORTED_MODULE_1_jquery (...)。sideNav不是函数

1 个答案:

答案 0 :(得分:1)

尝试修改vendor.ts (较新的Angular-cli使用lib.ts代替,但是相同),然后重新编译:

// jQuery
declare let jQuery: any;

// Dependencies
window['jQuery'] = require('jquery');
window['$'] = window['jQuery'];
import 'jquery-ui-npm/jquery-ui.min.js'

在您的组件广告中,在所有导入之后:

declare let $: any;