Angular2 - 无法设置未定义属性'stack'

8

我在使用Angular2时遇到了问题,当我创建服务并将其添加到appModuleproviders:[]部分时,出现了错误:

Uncaught TypeError: Cannot set property 'stack' of undefined
    at SyntaxError.set [as stack] (eval at <anonymous> (http://localhost:8080/vendor.js:94:2), <anonymous>:1628:63)
    at assignAll (eval at <anonymous> (http://localhost:8080/polyfills.js:2217:2), <anonymous>:704:29)

我做过两个应用程序,以前从未遇到过类似的错误......这是我的简单服务文件:

Injectable()
export class RecordService {

    private API_END_POINT: string = 'app/records';
    private API = process.env.API_END_POINT;

    constructor(private http: Http ) {

    }

    getRecords(): Observable<any> {
        return this.http
            .get( this.API_END_POINT )
            .map( (res:Response) => res.json().data as RecordModel )
            .catch(this.handleError);

    }

    private handleError(error: any): Promise<any> {
        console.error('An error occurred', error);
        return Promise.reject(error.message || error);
    }

}

我不知道如何修复这个问题,也没有任何有关此错误的信息...请帮帮我!

1
Injectable() 应该改为 @Injectable()。你是否将 HttpModule 添加到了 imports: [...] 中? - Günter Zöchbauer
哎呀,编程太多了,我错过了“@”... 这就是原因... 嗯,谢谢伙计!:) - Uland Nimblehoof
1
我考虑投票关闭这个问题,因为它只是一个打字错误,但你添加的具体错误信息可能会帮助其他人更快地找到错误。 - Günter Zöchbauer
1
顺便说一下,Gunter,这不是你第一次帮助我了;) - Uland Nimblehoof
2个回答

11

似乎 zone.js 存在一个 bug。试着将版本号固定为 0.7.4,看看错误信息是否更明确。

在这里查看更多信息

运行命令: npm install --save zone.js@0.7.4


问题已解决,谢谢!:) 实际上栈根本没有显示模板错误。现在没问题了!:) - Uland Nimblehoof
2
好的,谢谢。这真是太令人沮丧了。 - Joshua Ohana

2

Injectable()缺少@

应该是:

@Injectable()
export class RecordService {

我可以问一件事吗?实际上,并不是所有的错误都能被显示出来,因为错误堆栈未定义。之前,你帮助我找到了错误的原因,但我需要调查为什么我的堆栈总是未定义,如果ng print stak... - Uland Nimblehoof
什么是“堆栈”?你的代码没有展示它。 - Günter Zöchbauer
1
堆栈—堆栈跟踪:但我已经修复了它。 - Uland Nimblehoof

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接