Angular 7:将jQuery与Typescript混合使用的良好实践?

时间:2018-12-07 10:40:37

标签: jquery angular typescript

我目前正在和一群朋友一起做一个学校项目,我们对Angular和TypeScript都是陌生的。

我参与了项目的设计部分,但是还没有完成编码,但是最近我完成了我的部分并进行了git pull。

我看到了我朋友写的这段代码:

  ngOnInit() {
    $(document).ready(function() {
      $(".dropdown-trigger").dropdown();
      $(".hamburger-nav").on("click", function() {
        setHamburgerMenu();
        $(".menu").animate({
          height: 'toggle'
        });
      });
      // @ts-ignore
      $('.modal').modal({
        inDuration: 400,
        outDuration: 400,
        preventScrolling: false
      });
    }); //document ready function
  }

我们正在使用Materialize CSS作为样式框架,但是在Angular 2应用中有些关于jQuery代码的问题困扰着我,在$.ready的角度代码之后看到NgOnInit很奇怪。另外,如果Angular 2中有事件处理功能,是否不需要使用$ .on('click',...)?

这段代码是错误的还是正确的?通过使用TypeScript,我们是否应该(将其作为一种好习惯)在这样的TypeScript文件中混合jQuery?

很抱歉,这个问题听起来很愚蠢,我是Angular的初学者,而我在Angular方面的经验仅是关于Angular的EdX课程。 在过去的一个小时中,我也一直在进行搜索和搜索,找不到一个直接的答案,我只是希望学习...!

1 个答案:

答案 0 :(得分:1)

有可能,但是Angular不会像JQuery一样直接操作DOM,这不是Angular想要的工作方式。您可以在Angular中做任何可以使用JQuery的事情,因此只需在需要做一些事情时研究Angular的功能,并尝试避免同时使用JQuery和JS / TS本身进行DOM操作。

Angular Docs Fundementals是查找信息时首先要看的地方。