[英]ngx-gallery image is not displayed
Angular ngx-gallery problem Angular ngx-画廊问题
I was able to take data in json format without any errors, but ngx-gallery doesn't seem, it loaded in the element in the page details but the images and the ngx-gallery template do not appear, It may not be taking photos from the service, but didn't make a mistake, here is my code:我能够以 json 格式获取数据,没有任何错误,但 ngx-gallery 似乎没有,它加载到页面详细信息中的元素中,但图像和 ngx-gallery 模板没有出现,它可能没有拍照来自服务,但没有出错,这是我的代码:
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { NgxGalleryAnimation, NgxGalleryImage, NgxGalleryOptions } from '@kolkov/ngx-gallery';
import { City } from 'src/app/models/city';
import { Photo } from 'src/app/models/photo';
import { CityService } from 'src/app/services/city.service';
@Component({
selector: 'app-city-detail',
templateUrl: './city-detail.component.html',
styleUrls: ['./city-detail.component.css'],
providers: [CityService]
})
export class CityDetailComponent implements OnInit {
constructor(private activatedRoute: ActivatedRoute, private cityService: CityService) { }
city: City;
galleryOptions: NgxGalleryOptions[];
galleryImages: NgxGalleryImage[];
photos: Photo[] = [];
ngOnInit(): void {
this.activatedRoute.params.subscribe(params => {
this.getCityById(params["cityId"])
})
}
getCityById(cityId: string) {
this.cityService.getCityById(cityId).subscribe(data => {
this.city = data;
})
}
getPhotosByCity(cityId: string): void{
this.cityService.getPhotosByCity(cityId).subscribe(data=>{
this.photos = data;
this.setGallery();
})
}
getImages(){
const imageUrls= []
for(let i = 0;i<this.city.photos.length;i++){
imageUrls.push({
small:this.city.photos[i].url,
medium:this.city.photos[i].url,
big:this.city.photos[i].url
})
}
return imageUrls;
}
setGallery() {
this.galleryOptions = [
{
width: '600px',
height: '400px',
thumbnailsColumns: 4,
imageAnimation: NgxGalleryAnimation.Slide
},
// max-width 800
{
breakpoint: 800,
width: '100%',
height: '600px',
imagePercent: 80,
thumbnailsPercent: 20,
thumbnailsMargin: 20,
thumbnailMargin: 20
},
// max-width 400
{
breakpoint: 400,
preview: false
}
];
this.galleryImages = this.getImages()
}
}
Template:模板:
<ngx-gallery *ngIf="galleryImages" [options]="galleryOptions" [images]="galleryImages" class="ngx-gallery"></ngx-gallery>
Add the following to CityDetailComponent.css将以下内容添加到 CityDetailComponent.css
ngx-gallery { display: inline-block; margin-bottom: 20px; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.