Angular 2在服务中获取routeParams
发布时间:2020-12-17 10:17:17 所属栏目:安全 来源:网络整理
导读:我想将逻辑从组件转移到服务.但我发现我无法在服务中获得routeParams. 我的组件看起来像 import { Component,OnInit } from '@angular/core';import { ActivatedRoute,Params } from '@angular/router';import { MyService } from '../services/my.service';
我想将逻辑从组件转移到服务.但我发现我无法在服务中获得routeParams.
我的组件看起来像 import { Component,OnInit } from '@angular/core'; import { ActivatedRoute,Params } from '@angular/router'; import { MyService } from '../services/my.service'; @Component({ moduleId: module.id,templateUrl: 'my.component.html',styleUrls: ['my.component.css'] }) export class MyComponent implements OnInit { constructor(private myService: MyService,private route: ActivatedRoute) {;} public ngOnInit() { this.route.params .subscribe((params: Params) => { debugger; console.log(params); }); this.myService.getParams() .subscribe((params: Params) => { debugger; console.log('Return1:'); console.log(params); },(params: Params) => { debugger; console.log('Return2:'); console.log(params); },() => { debugger; console.log('Return3:'); }); } }; 我的服务看起来像 import { Injectable } from '@angular/core'; import { Params,ActivatedRoute } from '@angular/router'; import { Observable } from 'rxjs'; @Injectable() export class MyService { constructor(private route: ActivatedRoute) {;} public getParams(): Observable<Params> { this.route.params.subscribe((params: Params) => { debugger; console.log('Service1:'); console.log(params); },(params: Params) => { debugger; console.log('Service2:'); console.log(params); },() => { debugger; console.log('Service3:'); }); return this.route.params; } }; 当我调试时,我可以看到params填充组件并且在服务中为空.结果就是这样 Component: Object {param: "1"} Service1: Object {} Return1: Object {} 我正在使用Angular 2.0.0.为什么组件和服务有所不同?是否可以在服务中获得参数? 编辑:
我们可以将ActivatedRoute传递给组件服务.然后在服务类中订阅route.params
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |