Я добавил простой канал в свое приложение 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
Надеюсь, вы, ребята, можете указать мне правильное направление!