我正在编写
https://angular.io/docs/ts/latest/tutorial/toh-pt2.html的教程并在创建英雄数组后得到以下错误:
Error: Error: Unexpected value 'AppComponent' declared by the module 'AppModule' at new BaseException (localhost:3000/node_modules/@angular/compiler//bundles/compiler.umd.js:5116:27) at eval (localhost:3000/node_modules/@angular/compiler//bundles/compiler.umd.js:13274:35) at Array.forEach (native) at CompileMetadataResolver.getNgModuleMetadata (localhost:3000/node_modules/@angular/compiler//bundles/compiler.umd.js:13261:53) at RuntimeCompiler._compileComponents (localhost:3000/node_modules/@angular/compiler//bundles/compiler.umd.js:15845:51) at RuntimeCompiler._compileModuleAndComponents (localhost:3000/node_modules/@angular/compiler//bundles/compiler.umd.js:15769:41) at RuntimeCompiler.compileModuleAsync (localhost:3000/node_modules/@angular/compiler//bundles/compiler.umd.js:15746:25) at PlatformRef_._bootstrapModuleWithZone (localhost:3000/node_modules/@angular/core//bundles/core.umd.js:9991:29) at PlatformRef_.bootstrapModule (localhost:3000/node_modules/@angular/core//bundles/core.umd.js:9984:25) at Object.eval (localhost:3000/app/main.js:4:53) Evaluating localhost:3000/app/main.js Error loading localhost:3000/app/main.js
我的app.module.ts文件此时是:
import { NgModule } from '@angular/core'; import { BrowserModule }from '@angular/platform-browser'; import { FormsModule } from '@angular/forms'; import { AppComponent } from './app.component'; @NgModule({ imports: [ BrowserModule,FormsModule ],declarations: [ AppComponent ],bootstrap: [ AppComponent ] }) export class AppModule {}
我的app.components.ts文件此时是:
import { Component } from '@angular/core'; export class Hero { id: number; name: string; } @Component ({ selector: 'my-app',template: ` <h1>{{title}}</h1> <h2>My Heroes</h2> <ul class="heroes"> <li *ngFor="let hero of heroes"> <span class="badge">{{hero.id}}</span> {{hero.name}} </li> </ul> <h2>{{hero.name}} details!</h2> <div><label>id: </label>{{hero.id}}</div> <div> <label>name: </label> <input [(ngModel)]="hero.name" placeholder="name"> </div> ` }) const HEROES: Hero[] = [ { id: 11,name: 'Mr. Nice' },{ id: 12,name: 'Narco' },{ id: 13,name: 'Bombasto' },{ id: 14,name: 'Celeritas' },{ id: 15,name: 'Magneta' },{ id: 16,name: 'RubberMan' },{ id: 17,name: 'Dynama' },{ id: 18,name: 'Dr IQ' },{ id: 19,name: 'Magma' },{ id: 20,name: 'Tornado' } ]; export class AppComponent { title = 'Tour or Heroes'; heroes = HEROES; }
到目前为止,一切都在努力。 Angular的新手,不知道如何调试它。
编辑:
错误发生在(index)at:
<!-- 2. Configure SystemJS --> <script src = "systemjs.config.js"></script> <script> System.import('app').catch(function(err) { console.error(err); }); </script> </head>
谢谢,
装饰器是遵循装饰器声明的相关类或变量。
在你的代码中,@ compoment装饰器超过了const HEROES,这必须在类AppComponent上。
所以你的代码应该如下:
import { Component } from '@angular/core'; export class Hero { id: number; name: string; } export const HEROES: Hero[] = [ { id: 11,name: 'Tornado' } ]; @Component ({ selector: 'my-app',template: ` <h1>{{title}}</h1> <h2>My Heroes</h2> <ul class="heroes"> <li *ngFor="let hero of heroes"> <span class="badge">{{hero.id}}</span> {{hero.name}} </li> </ul> <h2>{{hero.name}} details!</h2> <div><label>id: </label>{{hero.id}}</div> <div> <label>name: </label> <input [(ngModel)]="hero.name" placeholder="name"> </div> ` }) export class AppComponent { title = 'Tour or Heroes'; heroes = HEROES; }