2017-01-29 20 views
0

Кто-нибудь знает, является ли это ошибкой или проблемой с моими кодами?Angular2 Http получить неверные данные в html

В настоящее время я пытаюсь использовать forEach с http, чтобы получить rss-канал, и он отображает только данные из одной rss-ленты, которой не должно быть. Однако в журнале консоли это эмуляция правильного поведения.

Пожалуйста, помогите, я пытался решить несколько дней.

Мой Html код

<div *ngFor="let category of favouritecategories | async"><h3 class="header" [id]="category.name">{{category.name}}</h3> 

<ion-item-sliding *ngFor="let item of xmlItemsApac; let i=index" #slidingItem> 

    <ion-item *ngIf="i<articlecount" text-wrap> 
    <div class (click)="openbrowser(item.link)"><h2>{{item.title}}</h2> 
    <p class="block-with-text"> {{item.description}}</p></div> 
    </ion-item> 
    <ion-item-options side="right"> 
    <button ion-button color="custom" (click)="bookmark(item.title,item.description,item.link,slidingItem)"><ion-icon name="bookmark"></ion-icon>Bookmark</button> 
    </ion-item-options> 

    <ion-item *ngIf="i>articlecount" [hidden]="!showMoreAmericas" text-wrap> 
    <div class (click)="openbrowser(item.link)"><h2>{{item.title}}</h2> 
    <p class="block-with-text"> {{item.description}}</p></div> 
    </ion-item> 
    <ion-item-options side="right"> 
    <button ion-button color="custom" (click)="bookmark(item.title,item.description,item.link,slidingItem)"><ion-icon name="bookmark"></ion-icon>Bookmark</button> 
    </ion-item-options> 

</ion-item-sliding> 

<button ion-item (click)="toggleMoreArticle()" text-center detail-none large> 
    <h4 class="showMoreText"><ion-icon name="arrow-down" *ngIf="!arrows"></ion-icon> 
    <ion-icon name="arrow-up" *ngIf="arrow"></ion-icon> {{buttonText}}</h4> 
</button><br/> 

</div> 

Мой Машинопись

this.af.database.list(`/users/${userid}/favourites`) 
    .subscribe(snapshots => { 
    snapshots.forEach(snapshot => { 
     this.Apac = this.http.get(snapshot.regions[0].rss) 
     this.Apac.map(res => res.text()) 
      .subscribe((data) => { 
      this.parseXML(data) 
       .then((data) => { 
       this.xmlItemsApac = data; 
       console.log(this.xmlItemsApac) 
       }); 
      }); 
    }); 
    }); 

ответ

0

Вы заменяете вашу запись в RSS this.xmlItemsApac .Вы необходимо инициализировать его пустой массив. this.xmlItemsApac=[]

и самокаты значения

this.af.database.list(`/users/${userid}/favourites`) 
    .subscribe(snapshots => { 
    snapshots.forEach(snapshot => { 
     this.Apac = this.http.get(snapshot.regions[0].rss) 
     this.Apac.map(res => res.text()) 
      .subscribe((data) => { 
      this.parseXML(data) 
       .then((data) => { 
       this.xmlItemsApac.push(data); 
       console.log(this.xmlItemsApac) 
       }); 
      }); 
    }); 
    }); 
+0

Привет @suraj, есть все, что мне нужно сделать для моего HTML, как хорошо, но это не кажется, работает –

+0

ион-элемент скольжения должен быть внутри ' ion-list' –

+0

Да, он уже находится в списке ионов, но он не отображает ничего на моем представлении, а в моем консольном журнале это рендеринг 3 массива –