私は角度4のアプリケーションを持っています。私は、APIからいくつかのデータを取得するサービスを持っており、それを表示するコンポーネントがあります。私はサービスをコンポーネントの引数として渡す方法を知らない。どんな助力も深く感謝します。これは私が管理する最善の方法です:角度4ルートからコンポーネントにサービスを渡す
私はコンポーネントに引数を渡す方法を示していますが、私の場合には何のコンポーネントがHomeComponentが含まれていませんが、それは唯一のルートに登録されています this article渡って来ているimport {
Component,
OnInit
} from '@angular/core';
import { Title } from './title';
@Component({
selector: 'home',
providers: [
Title
],
styleUrls: [ './home.component.css' ],
templateUrl: './home.component.html'
})
export class HomeComponent implements OnInit {
constructor(
) {}
people: Person[] = [];
ngOnInit(){
peopleService
.getAll()
.subscribe(p => this.people = p)
}
}
:
import { Routes } from '@angular/router';
import { HomeComponent } from './home';
import { AboutComponent } from './about';
import { NoContentComponent } from './no-content';
export const ROUTES: Routes = [
{ path: '', component: HomeComponent },
{ path: 'home', component: HomeComponent },
{ path: 'about', component: AboutComponent },
{ path: 'detail', loadChildren: './+detail#DetailModule'},
{ path: 'barrel', loadChildren: './+barrel#BarrelModule'},
{ path: '**', component: NoContentComponent },
];
である私はちょうどこれをしなかったと ERRORエラーました:キャッチされない(約束で):エラー:いいえプロバイダを私は プロバイダーを追加した後PeopleService ためエラーは去っていきました:HomeComponent – GregJF
へ[PeopleService] はあなた 'HomeComponentは' '意味が中にそれが存在している、あなたの' app.module.ts'の一部であり、宣言配列? そうでない場合、それが問題です。また、この 'PeopleService'をHomeComponentでのみ使用する場合は、それをコンポーネントレベルのプロバイダとして配置するのは間違いではありませんが、ほとんどの場合、そのために' SharedModule'を使用します。 –