ulo*_*lou 7 angular2-upgrade angular
更新我的项目后RC6发生以下错误:
Error: Typescript found the following errors:
app.component.ts (12, 3): Argument of type '{ moduleId: string; selector: string; templateUrl: string; styleUrls: string[]; directives: (type...' is not assignable to parameter of type 'ComponentMetadataType'.
Object literal may only specify known properties, and 'directives' does not exist in type 'ComponentMetadataType'.
Run Code Online (Sandbox Code Playgroud)
app.component.ts
import {Component, OnInit} from '@angular/core';
import {NavbarComponent} from "./shared/navbar/navbar.component";
import {ROUTER_DIRECTIVES} from "@angular/router";
import {SidebarComponent} from "./shared/sidebar/sidebar.component";
import {FooterComponent} from "./shared/footer/footer.component";
@Component({
moduleId: module.id,
selector: 'app-root',
templateUrl: 'app.component.html',
styleUrls: ['app.component.css'],
directives: [NavbarComponent, SidebarComponent, FooterComponent, ROUTER_DIRECTIVES]
})
export class AppComponent implements OnInit {
ngOnInit(): any {
return undefined;
}
}
Run Code Online (Sandbox Code Playgroud)
我需要一段时间,但我无法弄明白.
Ced*_*Ced 17
Directives如果我正确阅读,pipes必须定义@NgModule.内部支持@Component被删除.
所以,只需将您的指令移动到NgModule中
目前你有:组件A带有指令Ac,组件B带有指令Bc,很可能是一个AppModule,你只需要将Ac和Bc移动到AppModule中.是的,你必须从@Component声明中删除它们
然后,指令将立即在模块中定义的组件中可用.
OP的示例变为:
app.component.ts
// imports...
@Component({
selector: 'app-root',
templateUrl: 'app.component.html',
})
export class AppComponent {}
Run Code Online (Sandbox Code Playgroud)
app.module.ts
// imports...
@NgModule({
declarations: [
AppComponent,
NavbarComponent,
SidebarComponent,
FooterComponent
],
imports: [
BrowserModule,
CommonModule,
FormsModule
],
providers: [
//MyService, MyOtherService
],
entryComponents: [AppComponent],
bootstrap: [AppComponent]
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)
请参阅doc for router:router文档
directives并且pipes必须在@NgModuleRC6 之后的声明中定义.从@Component装饰器中删除它们.
| 归档时间: |
|
| 查看次数: |
9156 次 |
| 最近记录: |