コンポーネントで行うように、サービスでルートパラメータを取得するためにActivatedRouteを使用します。意図は、パラメータを使用することを http://plnkr.co/edit/sckmDYnpIlZUbqqB3gli角2.0.2:サービスでActivatedRouteが空です。
注:私はサービスにActivatedRouteオブジェクトを挿入するとき はしかし、それは私が動作を再現plunkerを作成しました
変数空のparamsが含まれていますサービスではなく、コンポーネントではなく、プランナーが設定されている方法は、純粋に問題を示すことです。
コンポーネント(test
が検索された):
export class Component implements OnInit {
result: string;
constructor(private route: ActivatedRoute) {
}
ngOnInit() {
this.route.params.subscribe(params => {
this.result = params['test'];
});
}
}
サービス(test
が取得されないです):
export class Service {
result: string;
constructor(private route: ActivatedRoute) {
this.getData();
}
getData() {
this.route.params.subscribe(params => {
this.result = params['test'];
});
}
}
サービスに経路を挿入することをお勧めします。 「サービス」はシングルトンです。 'ActivatedRoute'はそうではありません。私は 'ActivatedRoute'インスタンスがコンポーネントとサービスではまったく違うと思います。 – estus
@estus意味が分かりますが、関数を介してparamをサービスに渡すことができます。しかし、これはclunkyと思われる。 –