简体   繁体   English

错误错误:未捕获(承诺中):错误:ActivatedRoute没有提供程序

[英]ERROR Error: Uncaught (in promise): Error: No provider for ActivatedRoute

package.json dependencies package.json依赖项

"dependencies": {
"@angular/cli": "1.0.0",
"@angular/compiler-cli": "^4.0.0",
"@angular/common": "^4.0.0",
"@angular/compiler": "^4.0.0",
"@angular/core": "^4.0.0",
"@angular/forms": "^4.0.0",
"@angular/http": "^4.0.0",
"@angular/platform-browser": "^4.0.0",
"@angular/platform-browser-dynamic": "^4.0.0",
"@angular/router": "^4.0.0",
"core-js": "^2.4.1",
"rxjs": "^5.1.0",
"zone.js": "^0.8.4"

} }

In component post-show.component.ts I've import 'ActivatedRoute' and use- 在组件post-show.component.ts中,我导入了'ActivatedRoute'并使用-

import {Component, OnInit, Input } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { Post } from './post';
import { PostService } from './post.service';

@Component({
    selector: 'post-show',
    templateUrl: 'post-show.component.html',
    styleUrls: ['post-list.component.css']
})
export class PostShowComponent implements OnInit {
    id: number;
    routerId: any;

    constructor(private http: Http, private route: ActivatedRoute, private postService: PostService ) {}

    @Input() post: Post;

    ngOnInit(){
        this.routerId = this.route.params.subscribe(
        params => {
            this.id = +params['id'];
        })
        let postRequest = this.route.params
            .flatMap((params: Params) => 
                this.postService.getPost(+params['id']));
        postRequest.subscribe(response => this.post = response.json());
    }
}

When I try to use 'ActivatedRoute' it through the error- 当我尝试使用“ ActivatedRoute”时,它会通过错误-

ERROR Error: Uncaught (in promise): Error: No provider for ActivatedRoute! 错误错误:未捕获(承诺):错误:ActivatedRoute没有提供者! Error: No provider for ActivatedRoute! 错误:ActivatedRoute没有提供者!

You need add: providers : [ActivatedRoute], in @Component , like that: 您需要在@Component中添加: provider :[ActivatedRoute],如下所示:

@Component({
   selector: 'post-show',
   templateUrl: 'post-show.component.html',
   styleUrls: ['post-list.component.css'],
   providers: [ ActivatedRoute ]
})

What worked for me was: 对我有用的是:

import { RouterTestingModule } from '@angular/router/testing';

Then importing RouterTestingModule in the .spec file: 然后在.spec文件中导入RouterTestingModule

imports: [
    RouterTestingModule,
],

请在您的主模块中导入RouterModule。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 错误:未捕获(承诺):错误:ActivatedRoute没有提供程序 - Error: Uncaught (in promise): Error: No provider for ActivatedRoute 角度错误:没有ActivatedRoute的提供者 - Angular error: no provider for ActivatedRoute 未捕获(承诺):错误:没有 GooglePlus 的提供者 - Uncaught (in promise): Error: No provider for GooglePlus 未捕获(在承诺中):错误:没有String的提供者 - Uncaught (in promise): Error: No provider for String 未发现(承诺中):错误:没有凭据提供者? - Uncaught (in promise): Error: No provider for Credentials? 错误错误:未捕获(承诺):错误:没有布尔值的提供者 - ERROR Error: Uncaught (in promise): Error: No provider for Boolean Angular 2 No Provider或DI错误(未捕获(承诺):错误:No Provider…) - Angular 2 No Provider or DI error (Uncaught (in promise): Error: No provider …) 如何解决“错误:未捕获(承诺):错误:没有提供”Ionic 3中的错误 - How to solve “Error: Uncaught (in promise): Error: No provider for” error in Ionic 3 使用Karma的Angular测试中的错误:未捕获(承诺):错误:没有SessionUtil的提供程序 - Error in Angular Test using Karma: Uncaught (in promise): Error: No provider for SessionUtil Angular2“t 没有提供者!” 和未捕获(承诺):错误:DI 错误 - Angular2 "No provider for t!" and Uncaught (in promise): Error: DI Error
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM