Angular 2模块导入破解应用程序

时间:2017-01-12 19:58:46

标签: javascript angular

我正在做快速入门教程并遇到一些错误。以下是我的文件结构:

//## home/home.component.ts #################
import {Component} from '@angular/core';

@Component({
  selector:'home',
  template: `
<div>I'm a home component.</div>
`
})

export class HomeComponent{}

//## home/home.module.ts #################
import {NgModule} from "@angular/core";
import {HomeComponent} from "./home.component";

NgModule({
  declarations: [HomeComponent],
  exports: [HomeComponent]
});

export class HomeModule {
}

//## app.component.ts #################
import {Component} from "@angular/core";
@Component({
  selector: 'app',
  template: `
    <div>I'm the App Component</div>
  `
})
export class AppComponent {}

//## app.module.ts #################
import {AppComponent} from "./app.component";
import {BrowserModule} from "@angular/platform-browser";
import {NgModule} from "@angular/core";
import {HomeModule} from "./home/home.module"; //this breaks it

@NgModule({
  declarations: [AppComponent],
  bootstrap: [AppComponent],
  imports: [BrowserModule, HomeModule] //home module breaks it
})

export class AppModule{}

//## main.ts #################
import {platformBrowserDynamic} from "@angular/platform-browser-dynamic";
import {AppModule} from "./app.module";

platformBrowserDynamic().bootstrapModule(AppModule);

我很困惑,因为这是一个非常简单的例子。 Home模块导致应用程序以某种方式失败。它给出了以下错误:

ZoneAwareErrormessage: "(SystemJS) Cannot set property 'stack' of undefined ...后面跟着数百行。有没有人对如何调试这些错误有任何想法?

4 个答案:

答案 0 :(得分:0)

如果HomeModule是功能模块,请将声明部分更改为declarations: [CommonModule, HomeComponent]

答案 1 :(得分:0)

我得到了同样的错误,这导致该区域在我的模板中发现了一些错误。我在Angular 2.4.1和0.7.4区,尝试升级。

顺便说一下,我已经将模板属性设置为我模板的url,这是有效的,所以,我认为该区域可能有一个bug或者什么。

答案 2 :(得分:0)

您必须在HomeModule中导入CommonModule。你的HomeModule代码是这样的:

//Delete disabled elements of lists before submit
$('form').submit(function () {
    $('.ignore-desactivated').each(function () {
        $(this).children().each(function () {
            $(this).removeAttr('disabled');
        });
    })
})

答案 3 :(得分:0)

我想解决这个问题,但对于遇到同样问题的人,请避免使用快速入门教程并使用angular-cli来生成内容。在开始时它似乎更清晰,更容易理解。

ng new new-project --style=sass应该把你排除在外。