当前位置:  开发笔记 > 编程语言 > 正文

Angular2:无法读取未定义的属性'call'(引导时)

如何解决《Angular2:无法读取未定义的属性'call'(引导时)》经验,为你挑选了2个好方法。

检查底部的更新!

我有一个服务,在应用程序引导时抛出错误.Cannot read property 'call' of undefined.我正在使用ng2 2.4.2和angular-cli 1.0.0-beta.24.

错误

未捕获的TypeError:无法读取webpack_require(bootstrap 81b10f8 ...:52)的未定义属性'call',在Object.621(environment.ts:8)的webpack_require(bootstrap 81b10f8 ...:52)处于Object.450(src async:7) at webpack_require(bootstrap 81b10f8 ...:52)at object.1057(util.service.ts:35)at webpack_require(bootstrap 81b10f8 ...:52)at webpackJsonpCallback(bootstrap 81b10f8 ...:23)at main.bundle.js:1

正如您所看到的,它是util服务的问题 - 如下所示:

import { Injectable } from '@angular/core';
import { Router } from '@angular/router';
import { Project } from '../datatypes/';
import { Response } from '@angular/http';


@Injectable()
export class UtilService {
    constructor(private router: Router) {}

    public redirectToProject(project: Project) {
        let query = project.ProjectName.split(' ')
            .join('-')
            .concat('-' + project.Id)
            .toLowerCase();
        this.router.navigate(['/project', query]);
    }

    public extractData(res: Response) {
        let body = res.json();
        return body || {};
    }
}

奇怪的是:当在chrome中检查源文件时,它没有语法突出显示,这表明语法错误 - 在我看来,虽然没有.

2017年1月20日更新

我更新到ng2.4.4和angular-cli 1.0.0-beta26.问题仍然存在.在玩游戏时,Arjan发现它与beta 21一起使用.必须检查更改.现在问题不在于上面的服务,而是在environment.ts文件中(具有所有默认值).



1> Franklin Pio..:

我认为在运行时更改模块导入时会发生这种情况.

再次使用运行应用程序 ng serve,它为我解决了问题.

当您在延迟模块加载或类似场景之前尝试在其他模块中使用延迟加载模块的组件时,也可能会发生这种情况.



2> Arjan..:

对我来说,这是因为使用我们自己的客户端JavaScript来动态加载webpack生成的bundle.这很容易在我们自己的加载器脚本中修复.

使用webpack时,常规的Angular 2 index.html不包含任何元素

N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有