在可观察数组中嵌套* ngFor

时间:2018-10-24 10:10:26

标签: html angular typescript observable

我正在尝试使用HTML中的Angular 6绑定一个嵌套的可观察数组,并在轮播中显示列表(image_urls)。 但是,我无法绑定嵌套数组。任何帮助或建议,我们将不胜感激。预先感谢

这是我到目前为止所拥有的:

Components.ts

getAvailableCars()
{
    this.cars$ = this.carService.getAvailableCars();
         this.cars$.subscribe(car => {
            car.forEach(c => {
             c.image_urls = new Array<any>(); 
                this.fileUploads = this.uploadFileService.getFiles(c.car_id);
                this.fileUploads.subscribe(res => {
                 c.image_urls = res;
             });
        });
    });
   }

HTML

<div class="row" *ngFor="let car of cars$ | async”>
    <span>{{car.name}}</span>

    <mdb-carousel [isControls]="true" [animation]="'slide'”> 
        <mdb-slide *ngFor="let file of car.image_urls | async”> 
            <span>{{file.url}}</span>
        </mdb-slide>
     </mdb-carousel>
</div>

控制台

Car(3) [{…}, {…}, {…}]
0:
car_id: 30
exterior_color: 4
fuel_type_name: "Petrol"
image_urls: Array(2)
0: FileUpload {url: "https://s3.amazonaws.com/xx/30/SocialPost_5695408_facebook.png"}
1: FileUpload {url: "https://s3.amazonaws.com/xx/30/logo_size.jpg"}
length: 2
__proto__: Array(0) 

如果我直接在Carousel中使用this.fileUploads,则可以使用,但是当我将其推送到c.image_urls时却无法使用。由于我有多辆汽车,每辆汽车都有不同的图像URL,因此需要将image_urls添加到汽车对象中。

再次感谢!

1 个答案:

答案 0 :(得分:0)

我知道了。我在订阅中而不是在地图中修改了可观察对象。

相关问题