如何修复Angular 2`未捕获(承诺):TypeError:无法读取属性’query’为null`?

前端之家收集整理的这篇文章主要介绍了如何修复Angular 2`未捕获(承诺):TypeError:无法读取属性’query’为null`?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在使用Angular 2文档中的英雄教程进行实验.不过,我已经来了一个问题,我不明白这个错误发生了什么:

未捕获(承诺):TypeError:无法在browser_adapter.ts中读取属性查询”null:88.

这两件涉及到HeroDetailComponent和HeroService.

import { Component,OnInit } from '@angular/core'; 
import { RouteParams } from '@angular/router-deprecated';

import { Hero,HeroService } from '../index';

@Component({
    selector: 'my-hero-detail',templateUrl: ...
    styleUrls: [...]
})
export class HeroDetailComponent implements OnInit {

    hero: Hero;

    // TEMPORARY FIX:
    _heroService = new HeroService();  // Avoids injection

    // constructor(private _heroService: HeroService,//             private _routeParams: RouteParams) {}

    constructor(private _routeParams: RouteParams) {}

    ngOnInit() {
        let id = +this._routeParams.get('id');
        console.log(id);
    }
}

当我使用这个代码,它的工作.但是当我切换构造函数,并使用与HeroService注入的那个,然后我得到我之前提到的错误.

@Injectable()
export class HeroService {

    getHeroes() {
        return HEROES;
    }

    getHero(id: number) {
        return new Hero(1,'Name','Power','AlterEgo');
    }
}

当我试图弄清楚发生了什么,我删除了所有与承诺相关的代码.但是,我仍然收到同样的错误.一切都是编译好的,这是一个运行时错误. HeroService和RouteParams在父组件中提供.

两个问题:

>如何解决这个问题?
>如何调试这种问题?

我倾向于认为这是角色2中的错误,但我不知道如何确保这不是我的错误.提前致谢.

更新:

>我添加了临时修复代码(避免注入,因此不是解决这个问题的方法,因为我想使注射工作正常).
> This is a Plunker与我正在尝试的代码的大致版本.我无法使其正常运行,但通过查看代码可能有助于诊断问题.

我看到以下问题:HeroComponent取决于HeroDetailsComponent,但是HeroDetailsComponent之后会在app / heroes / index.ts文件中导出.

有人报道这种设置here的问题

猜你在找的Angularjs相关文章