【发布时间】:2020-05-25 04:36:26
【问题描述】:
我有一个user.service、一个list.page.ts 和一个list.page.html。
我想显示来自后端 (php) 的数据。我在控制台日志中获取数据,但它没有显示在网站上。请帮忙。 谢谢!
user.servive
export enum SearchType {
all = '',
name = 'name',
stadt = 'stadt'
}
@Injectable({
providedIn: 'root'
})
export class UserService {
url = 'http://127.0.0.1:8000/getallrestaurants';
constructor(public http: HttpClient) { }
searchData(name: string, type: SearchType): Observable<any> {
return this.http.get('http://127.0.0.1:8000/getallrestaurants')
.pipe(
map(results => {
console.log('RAW: ', results);
return results['Search'];
})
);
}
list.page.ts
export class ListPage implements OnInit {
results: Observable<any>;
searchTerm = '';
type: SearchType = SearchType.all;
constructor(private userService: UserService) { }
ngOnInit() {}
searchChanged() {
this.results = this.userService.searchData(this.searchTerm, this.type);
}
list.page.html
<ion-searchbar [(ngModel)]="searchTerm" (ionChange)="searchChanged($event)"></ion-searchbar>
<ion-item>
<ion-label>Select Searchtype</ion-label>
<ion-select [(ngModel)]="type" (ionChange)="searchChanged($event)">
<ion-select-option value="">All</ion-select-option>
<ion-select-option value="stadt">Stadt</ion-select-option>
<ion-select-option value="name">Name</ion-select-option>
</ion-select>
</ion-item>
<ion-list>
<ion-item button *ngFor="let item of (results | async)" [routerLink]="['/', 'list', item.imdbID ]">
<ion-icon [name]="item.icon" slot="start"></ion-icon>
<p>Hallo User: {{item.name}}</p>
</ion-item>
【问题讨论】:
-
您应该在
searchChanged()中进行控制台日志或调试,以查看this.results是否在list.page.ts中更新。如果没有,则在您的服务中还有另一个问题与返回可观察对象有关。您必须订阅 observable 才能从中检索数据。那是searchChanged() { this.userService.searchData(this.searchTerm, this.type).subscribe(res => this.results = res); } -
到底是什么问题?您无法从后端获取数据?您可以从后端获取数据,但在前端没有显示?不知结果是否为空(使用
console.log查看)。 -
在 console.log 中,我从后端获取数据,如姓名、城市等。我的问题是它没有在前端显示数据。例如,我想在前端显示名称。
标签: php angular ionic-framework frontend backend