对着官网https://www.angular.cn/tutorial
教程的版本应该是最新的,因为自己用的版本为2.4.10,所以好多特性不一样。但找到了解决方法
1、@Injectable()
providedIn是angular6之后才有的属性,写上会报错。正确的做法是在app.module.ts里加上providers:[]
@NgModule({
imports: [
BrowserModule,
FormsModule,
AppRoutingModule
],
declarations: [
AppComponent,
DashboardComponent,
HeroesComponent,
HeroDetailComponent,
MessagesComponent
],
bootstrap: [ AppComponent ],
providers: [ MessageService, HeroService ]
})
2、引入import { Observable,of } from 'rxjs';报错
应该改为:
import { Observable } from 'rxjs';
import { of } from 'rxjs/Observable/of';
3、获取路由中id的信息,ActivatedRoute.snapshot.paramMap.get('id')报错
这个paramMap不存在,可以写ActivatedRoute.snapshot.params['id']。
因为params下面没有get()这个方法,然后看结构是json的,因此可以用中括号取值。