如何使用 angular 的 ng-gallery 从 angular 10 上的画廊内获取请求获取图像?

How to get images from get request inside gallery on angular 10 using ng-gallery for angular?

我被困在一些硬代码方法中,无法将图像从 api 直接导入图库或灯箱... 我找不到任何教程,所以我找到了这个例子:

https://stackblitz.com/edit/ngx-gallery-imageviewer

我试图为我的代码更改它,我设法在数组中获取图像,但我不知道如何将它们传递到 属性 中,就像这个家伙所做的或类似的..

我被困在必须将我的图像传递给具有某些属性的变量:

我的代码:

 allImages: PostG[] = [];

fetch(this.apiKey)
  .then(response => {
    if (response.ok) {
      return response.json();
    };
  })
  .then((j: any) => {
   
    const image = [...j.data.post.map(item => item.images)];
    
    image.forEach((image: PostG[]) => {
      var obj = {
        image:image,
      }
      this.allImages = [...image];
  return{
        type: "imageViewer",
        imagesGallery: {
        srcUrl: console.log(this.allImages),
        previewUrl: console.log(this.allImages)
      }
    }
  });
});

这段代码给出了下面的结果。

如果你可以查看 stackblitz,你可以在那个例子中看到他使用本地图像,在我的情况下,我应该如何设法获取我的照片? 我想 *ngFor 每个画廊的每个 post 我得到 post 图片..

这是我的 HTML 尝试做的:

<ion-col class="ion-no-padding" size-md="12" size-lg="12" size-sm="12" size-xs="12" *ngFor="let post of allPosts | sortPipe"> 

//then the gallery inside:

<div class="basic-container">
    <h2>Basic Example</h2>
    <gallery id="basic-test" fluid [items]="items" [itemTemplate]="itemTemplate" [gestures]="false"></gallery>
  </div>

  <!-- create a template to use the imageviewer -->
  <ng-template #itemTemplate let-index="index" let-type="type" let-data="{{this.allImages}}" let-currIndex="currIndex">
    <ng-container *ngIf="type === 'imageViewer' && index === currIndex" >
      <ngx-imageviewer [src]="this.allImages"></ngx-imageviewer>
    </ng-container>
  </ng-template>

抱歉,如果我的问题太长,我只是想为您提供所有帮助我的信息。我需要这个用于一个大项目。谢谢!

您需要根据 ngx-gallery 从您的回复创建 JSON。

有关更多说明,请查看此 example

我尝试创建与您现在面临的场景相同的场景

尝试这样的事情。

this.response.data.post.forEach(post => {
  post.galleryImages = post.images.map(image => {
    return new ImageItem({ src: image, thumb: image });
  });
});

以及在 HTML 文件中创建 JSON 之后

<div class="basic-container" *ngFor="let post of response.data.post; let i=index">
    <h2>{{post.title}}</h2>
    <p>{{post.description}}</p>
    <gallery id="basic-test_{{i}}" fluid [items]="post.galleryImages" [gestures]="false">
    </gallery>
</div>