【发布时间】:2016-11-02 04:31:17
【问题描述】:
所以我正在学习 angularjs 2,但在理解服务的使用以及让它与我的应用程序一起工作时遇到了困难。
电影.services.ts
import { Injectable } from "@angular/core";
import { Film } from './film';
import { FILMS } from './mock-films';
@Injectable()
export class FilmService {
getFilms(): Promise<Film[]> {
return Promise.resolve(FILMS)
}
}
模拟电影
import { Film } from './film';
//storing the data in array
export const FILMS: Film[] = [
{id:11, title: 'pokemon', summary:'great'},
{id:12, title: 'naruto', summary: 'good'},
{id:13, title: 'bleach', summmary: 'meh'},
{id:14, title: 'one piece', summary: 'not bad'}
];
电影列表.components.ts
import { Component, OnInit } from '@angular/core';
import { Observable } from 'rxjs/Observable'
import { FilmService } from '../film.service';
import { Film } from "../film";
@Component({
template: `
<h1>List of Films</h1>
<p>Films:</p>
<ul>
<li *ngFor="let film of films ">
<a [routerLink]="['/films', film.id]">{{film.title}}</a>
</li>
</ul>
<p *ngIf="films.length > 3">There are many vietnamese films to learn about!</p>
`,
// important when adding to service other crashes
providers: [FilmService]
})
//Component class
export class FilmListComponent implements OnInit {
public films: Film[];
constructor(private filmService: FilmService) {}
getFilms(){
this.filmService.getFilms().then((films: Film[]) => this.films = films);
}
ngOnInit():any {
this.getFilms()
}
}
所以我的目标是将模拟电影中的数据添加到我的电影列表中,但由于某种原因它没有显示出来。可能是film-list.component.ts,但不确定错误在哪里。
【问题讨论】:
-
我可以知道您遇到了什么错误吗?
标签: angular typescript service frontend