Jquery 如何在角度5中使用提升缩放?
我在angular 5应用程序中使用了Jquery 如何在角度5中使用提升缩放?,jquery,html,angular,angular5,elevatezoom,Jquery,Html,Angular,Angular5,Elevatezoom,我在angular 5应用程序中使用了elevate zoomjquery插件,但显示错误 错误类型错误:this.elevateToombig.nativeElement.elevateToom不是 函数 这是我的密码 import { Component, OnInit, AfterViewInit, ViewChild, ElementRef } from '@angular/core'; export class ProductComponent implements AfterVi
elevate zoom
jquery插件,但显示错误
错误类型错误:this.elevateToombig.nativeElement.elevateToom不是
函数
这是我的密码
import { Component, OnInit, AfterViewInit, ViewChild, ElementRef } from '@angular/core';
export class ProductComponent implements AfterViewInit, OnInit {
ngAfterViewInit() {
@ViewChild('elevatezoomBig') elevatezoomBig : ElementRef;
this.elevatezoomBig.nativeElement.elevateZoom({
borderSize: 1,
lensFadeIn: 200,
cursor: 'crosshair',
zoomWindowFadeIn: 200,
loadingIcon: true,
zoomWindowOffety: -50,
zoomWindowOffetx: 50,
zoomWindowHeight: 530,
responsive: true
});
}
}
在使用jQuery插件时,请注意两件事:
// this line tells TypeScript that something called "$" exists
declare let $: any;
// I'm assuming you omitted the "component" declaration
export class ProductComponent implements AfterViewInit, OnInit {
@ViewChild('elevatezoomBig') elevatezoomBig : ElementRef;
constructor(private ngZone: NgZone) {}
ngAfterViewInit(): void {
ngZone.runOutsideAngular(() => {
$(this.elevatezoomBig.nativeElement).elevateZoom({
borderSize: 1,
lensFadeIn: 200,
cursor: 'crosshair',
zoomWindowFadeIn: 200,
loadingIcon: true,
zoomWindowOffety: -50,
zoomWindowOffetx: 50,
zoomWindowHeight: 530,
responsive: true
});
})
}
}
编辑:语法构造函数(私有ngZone:ngZone)
允许您声明名为ngZone
的属性,其值自动设置为构造函数参数ngZone
的值。请参见参数属性下的
使用jQuery插件时,需要已经处理DOM。组件的实例化(所谓的生命周期)遵循三个基本步骤:构造函数->运行时填写输入属性->ngOnInit
->处理模板并初始化DOM->ngOnAfterViewInit
。如果你不太清楚这个顺序,帮自己一个忙,尽快阅读。相信我,你以后会感谢我的
说到这里,我们需要调用
ngAfterViewInit
中的插件初始化代码,感谢chiesa的快速回复,但我正在使用OnInit和AfterViewInit,它显示错误<代码>模块解析失败:保留关键字“private”(88:20)。您可能需要适当的加载程序来处理此文件类型。|this.galleryTop.swiper.params.control=this.galleryThumbs.swiper;|this.galleryThumbs.swiper.params.control=this.galleryTop.swiper;|建造商(私人、ngZone、核心_1.ngZone);|{ngZone.runOutsideAngular(函数(){我编辑了我以前的答案。你必须在构造函数中有私有ngZone:ngZone
,并且在ngAfterViewInit
中有插件初始化代码。我尝试过这个,一个错误消失了,但函数不起作用。好吧,我认为你应该尝试用这个错误生成一个最小的可复制示例,这样我们就可以工作了请看这里:。如果不看到问题,就不可能完全重建问题。