如何将jQuery与Angular一起使用?

谁能告诉我,如何将jQueryAngular一起使用

类MyComponent{
构造函数(){
//如何从这里查询DOM元素?
}
}

我知道有一些变通方法,比如预先操作DOM元素的id,但我希望有一种更干净的方法

与ng1相比,从Angular2使用jQuery是轻而易举的事。如果您使用的是TypeScript,则可以首先引用jQuery TypeScript定义

tsd安装jquery——保存

键入安装dt~jquery–global–save

TypescriptDefinitions不是必需的,因为您可以使用any作为$jQuery

在角度组件中,您应该使用@ViewChild()从模板中引用DOM元素。视图初始化后,您可以使用此对象的nativeElement属性并传递给jQuery

$(或jQuery)声明为JQueryStatic将为您提供对jQuery的类型化引用

从“@angular/platform browser dynamic”导入{bootstrap}”;
从“@angular/core”导入{Component,ViewChild,ElementRef,AfterViewInit};
声明var$:JQueryStatic;
@组成部分({
选择器:'ng selected',
模板:`<选择#选择元素>
<option*ngFor=“#item of items”[value]=“item”[selected]=“item==selectedValue”>{{item}}option</option>
</select>
<h4>{{selectedValue}}</h4&gt`
})
导出类NgChosenComponent实现AfterViewInit{
@ViewChild('selectElem')el:ElementRef;
项目=[‘第一’、‘第二’、‘第三’];
selectedValue='Second';
ngAfterViewInit(){
$(this.el.nativeElement)
.selected()
.on('change',(e,args)=&gt{
this.selectedValue=args.selected;
});
}
}
引导(NgChosenComponent);

此示例在plunker上提供:http://plnkr.co/edit/Nq9LnK?p=preview

tslint会抱怨selected不是$上的属性,要解决此问题,您可以在自定义*.d.ts文件中向JQuery接口添加定义

接口JQuery{
已选择(选项?:任意):JQuery;
}    

发表评论