Angular: 无法解析组件的所有参数
Angular: Can`t resolve all parameters for Component
我已经从 demo 下载了一个简单的 Angular 应用程序。使用 npm i
和 ng serve
后,我不断收到此消息。一直在尝试修复它,我想我会在这里得到一些帮助,因为我没有在其他地方找到任何解决方案。同样的事情发生在所有其他组件上。
introduction.component.ts
import { Component } from '@angular/core';
import { Router } from '@angular/router';
@Component({
selector: 'codelab-quiz-intro',
templateUrl: './introduction.component.html',
styleUrls: ['./introduction.component.scss']
})
export class IntroductionComponent {
constructor(private router: Router) {}
startQuiz() {
this.router.navigateByUrl('/question/1');
}
}
app.module.ts
import { NgModule, NO_ERRORS_SCHEMA, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
// import { CommonModule } from "@angular/common";
import {BrowserAnimationsModule} from "@angular/platform-browser/animations";
import {BrowserModule} from "@angular/platform-browser";
import { ReactiveFormsModule } from '@angular/forms';
import { MatCardModule } from '@angular/material/card';
import { MatRadioModule, MAT_RADIO_DEFAULT_OPTIONS } from '@angular/material/radio';
import { MatIconModule } from '@angular/material/icon';
import { MatButtonModule } from '@angular/material/button';
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { AccordionModule } from 'ngx-bootstrap/accordion';
import { Route, Router, RouterModule } from '@angular/router';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { IntroductionComponent } from './containers/introduction/introduction.component';
import { QuestionComponent } from './containers/question/question.component';
import * as QuestionComponent2 from './components/question/question.component';
import { ResultsComponent } from './containers/results/results.component';
const routes: Route[] = [
{ path: 'intro', component: IntroductionComponent, pathMatch: 'full' },
{ path: 'question', component: QuestionComponent, pathMatch: 'full' },
{ path: 'question/:questionId', component: QuestionComponent, pathMatch: 'full' },
{ path: 'results', component: ResultsComponent, pathMatch: 'full' },
{ path: '', redirectTo: 'intro', pathMatch: 'full' }
];
@NgModule({
declarations: [
AppComponent,
IntroductionComponent,
QuestionComponent,
QuestionComponent2.QuestionComponent,
ResultsComponent,
],
imports: [
// CommonModule,
BrowserModule,
BrowserAnimationsModule,
AppRoutingModule,
ReactiveFormsModule,
MatCardModule,
MatRadioModule,
MatIconModule,
MatButtonModule,
NgbModule,
AccordionModule.forRoot()
],
providers: [{
provide: MAT_RADIO_DEFAULT_OPTIONS,
useValue: { color: 'accent' },
}],
bootstrap: [ AppComponent ],
schemas: [
CUSTOM_ELEMENTS_SCHEMA,
NO_ERRORS_SCHEMA
]
})
export class AppModule { }
应用-routing.module.ts
import { NgModule } from '@angular/core';
import { Route, RouterModule } from '@angular/router';
import { IntroductionComponent } from './containers/introduction/introduction.component';
import { QuestionComponent } from './containers/question/question.component';
import { ResultsComponent } from './containers/results/results.component';
const routes: Route[] = [
{ path: 'intro', component: IntroductionComponent, pathMatch: 'full' },
{ path: 'question', component: QuestionComponent, pathMatch: 'full' },
{ path: 'question/:questionId', component: QuestionComponent, pathMatch: 'full' },
{ path: 'results', component: ResultsComponent, pathMatch: 'full' },
{ path: '', redirectTo: 'intro', pathMatch: 'full' }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
请在 tsconfig.spec.json
文件中添加此配置 "emitDecoratorMetadata": true
,它会起作用。
"compilerOptions": {
"emitDecoratorMetadata": true,
我已经从 demo 下载了一个简单的 Angular 应用程序。使用 npm i
和 ng serve
后,我不断收到此消息。一直在尝试修复它,我想我会在这里得到一些帮助,因为我没有在其他地方找到任何解决方案。同样的事情发生在所有其他组件上。
introduction.component.ts
import { Component } from '@angular/core';
import { Router } from '@angular/router';
@Component({
selector: 'codelab-quiz-intro',
templateUrl: './introduction.component.html',
styleUrls: ['./introduction.component.scss']
})
export class IntroductionComponent {
constructor(private router: Router) {}
startQuiz() {
this.router.navigateByUrl('/question/1');
}
}
app.module.ts
import { NgModule, NO_ERRORS_SCHEMA, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
// import { CommonModule } from "@angular/common";
import {BrowserAnimationsModule} from "@angular/platform-browser/animations";
import {BrowserModule} from "@angular/platform-browser";
import { ReactiveFormsModule } from '@angular/forms';
import { MatCardModule } from '@angular/material/card';
import { MatRadioModule, MAT_RADIO_DEFAULT_OPTIONS } from '@angular/material/radio';
import { MatIconModule } from '@angular/material/icon';
import { MatButtonModule } from '@angular/material/button';
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { AccordionModule } from 'ngx-bootstrap/accordion';
import { Route, Router, RouterModule } from '@angular/router';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { IntroductionComponent } from './containers/introduction/introduction.component';
import { QuestionComponent } from './containers/question/question.component';
import * as QuestionComponent2 from './components/question/question.component';
import { ResultsComponent } from './containers/results/results.component';
const routes: Route[] = [
{ path: 'intro', component: IntroductionComponent, pathMatch: 'full' },
{ path: 'question', component: QuestionComponent, pathMatch: 'full' },
{ path: 'question/:questionId', component: QuestionComponent, pathMatch: 'full' },
{ path: 'results', component: ResultsComponent, pathMatch: 'full' },
{ path: '', redirectTo: 'intro', pathMatch: 'full' }
];
@NgModule({
declarations: [
AppComponent,
IntroductionComponent,
QuestionComponent,
QuestionComponent2.QuestionComponent,
ResultsComponent,
],
imports: [
// CommonModule,
BrowserModule,
BrowserAnimationsModule,
AppRoutingModule,
ReactiveFormsModule,
MatCardModule,
MatRadioModule,
MatIconModule,
MatButtonModule,
NgbModule,
AccordionModule.forRoot()
],
providers: [{
provide: MAT_RADIO_DEFAULT_OPTIONS,
useValue: { color: 'accent' },
}],
bootstrap: [ AppComponent ],
schemas: [
CUSTOM_ELEMENTS_SCHEMA,
NO_ERRORS_SCHEMA
]
})
export class AppModule { }
应用-routing.module.ts
import { NgModule } from '@angular/core';
import { Route, RouterModule } from '@angular/router';
import { IntroductionComponent } from './containers/introduction/introduction.component';
import { QuestionComponent } from './containers/question/question.component';
import { ResultsComponent } from './containers/results/results.component';
const routes: Route[] = [
{ path: 'intro', component: IntroductionComponent, pathMatch: 'full' },
{ path: 'question', component: QuestionComponent, pathMatch: 'full' },
{ path: 'question/:questionId', component: QuestionComponent, pathMatch: 'full' },
{ path: 'results', component: ResultsComponent, pathMatch: 'full' },
{ path: '', redirectTo: 'intro', pathMatch: 'full' }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
请在 tsconfig.spec.json
文件中添加此配置 "emitDecoratorMetadata": true
,它会起作用。
"compilerOptions": {
"emitDecoratorMetadata": true,