You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular入门教程「传递数据到子组件」步骤报错求助

Angular独立组件无法在NgModule中声明的解决方法

错误原因

你遇到的报错是因为ProductAlertsComponent是独立组件(standalone: true),这类组件是Angular 14+的新特性,不需要在NgModule的declarations数组中声明——强行添加就会触发TS-996008错误。

StackBlitz的默认Angular模板会启用独立组件模式,而官方教程的生成逻辑可能默认生成非独立组件,所以出现了教程和实际操作的差异。

解决方案

有两种可行的解决方式,按需选择:

方式1:保留独立组件模式(推荐)

  1. 先从AppModule的declarations数组中移除ProductAlertsComponent:
@NgModule({
  declarations: [
    AppComponent,
    TopBarComponent,
    ProductListComponent
    // 删掉ProductAlertsComponent
  ],
  1. 分场景处理组件导入:
    • 若使用该组件的是独立组件(比如ProductListComponent):
      在product-list.component.ts中导入并添加到组件的imports数组:
      import { ProductAlertsComponent } from '../product-alerts/product-alerts.component';
      
      @Component({
        selector: 'app-product-list',
        templateUrl: './product-list.component.html',
        styleUrls: ['./product-list.component.css'],
        standalone: true,
        imports: [ProductAlertsComponent] // 加到这里
      })
      
    • 若使用该组件的是非独立组件(属于AppModule):
      在AppModule的imports数组中添加该组件:
      @NgModule({
        declarations: [
          AppComponent,
          TopBarComponent,
          ProductListComponent
        ],
        imports: [
          BrowserModule,
          ProductAlertsComponent // 加到这里
        ],
        // 其他配置(比如bootstrap)
      })
      

方式2:将组件改为非独立模式

打开product-alerts.component.ts,把standalone: true改为false:

@Component({
  selector: 'app-product-alerts',
  templateUrl: './product-alerts.component.html',
  styleUrls: ['./product-alerts.component.css'],
  standalone: false // 修改这里
})

修改后,你之前手动添加到AppModule的declarations数组的代码即可正常工作。

内容的提问来源于stack exchange,提问作者user24701492

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 07:18:23