Значение ионной трубы не показано - PullRequest
0 голосов
/ 17 ноября 2018

Я добавил простой канал в свое приложение Ionic, но он не работает должным образом. Не уверен, что проблема может быть (мои другие трубы работают ..). Я попробовал это с и без функции NgZone.

код трубы:

import { Pipe, PipeTransform, NgZone } from '@angular/core';
import { Http, HttpModule } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/map';

/**
 * Generated class for the LinkOgImagePipe pipe.
 *
 * See https://angular.io/api/core/Pipe for more info on Angular Pipes.
 */
@Pipe({
  name: 'linkOgImage',
})


export class LinkOgImagePipe implements PipeTransform {


  constructor(public http: Http, private ngZone:NgZone) {
  }

  transform(value: string) {

    var urlEncoded;  
    urlEncoded = encodeURIComponent(value);  

    var requestUrl = "https://mywebsitefunction.com?pageurl=" + urlEncoded ;  



    this.http.get(requestUrl).map(res => res.json()).subscribe(data =>{

        let imageurl = data[0]['img'];

        console.log(imageurl);

        this.ngZone.run(() => {     
            return imageurl;  
        })

    })




  }
}

Следующий код взят из page.ts:

<ion-card *ngFor="let newsitem of newsItems">
  <img src="{{ newsitem.link | linkOgImage }}"/>
  <ion-card-content>
    <ion-card-title>
      {{ newsitem.title }}
    </ion-card-title>
    <p>
      {{ removeHTMLInfo(newsitem.description ) }}
    </p>
  </ion-card-content>
</ion-card>

Я также пытался получить значение в виде текста вместо того, чтобы вставить его в изображение, но это также не работает. В файле console.log из канала отображаются правильные значения, но он не отображается в файле frontend.e

Надеюсь, вы, ребята, можете указать мне правильное направление!

1 Ответ

0 голосов
/ 17 ноября 2018

это нечистый канал (канал, который делает HTTP-запрос). U должен сделать это как

 @Pipe({
  name: 'fetch',
  pure: false
}) 

Ссылка на документацию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...