我目前正在和一群朋友一起做一个学校项目,我们对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课程。 在过去的一个小时中,我也一直在进行搜索和搜索,找不到一个直接的答案,我只是希望学习...!
答案 0 :(得分:1)
有可能,但是Angular不会像JQuery一样直接操作DOM,这不是Angular想要的工作方式。您可以在Angular中做任何可以使用JQuery的事情,因此只需在需要做一些事情时研究Angular的功能,并尝试避免同时使用JQuery和JS / TS本身进行DOM操作。
Angular Docs Fundementals是查找信息时首先要看的地方。