首页 > 解决方案 > Angular 9 中无法识别单选按钮

问题描述

我已将 Angular 从版本 8 更新到 9。我观察到在 app.module.ts 中,以下内容已从

import { MatRadioModule } from '@angular/material';

import { MatRadioModule } from '@angular/material/radio';

现在,我在 ng build 上收到以下错误。

  1. 如果 'mat-radio-button' 是一个 Angular 组件,则验证它是否是该模块的一部分。
  2. 如果“mat-radio-button”是一个 Web 组件,则将“CUSTOM_ELEMENTS_SCHEMA”添加到该组件的“@NgModule.schemas”以禁止显示此消息。

我尝试将 CUSTOM_ELEMENTS_SCHEMA 或 NO_ERRORS_SCHEMA 添加到应用程序模块,但没有成功。

import { NO_ERRORS_SCHEMA } from '@angular/core';
schemas: [NO_ERRORS_SCHEMA]

会有什么问题?谢谢!!

更新:

我在这里发现了类似的问题: 升级到 Angular v9 并启用 Ivy 后,Angular 编译失败

标签: angulartypescriptangular-materialangular9

解决方案


问题是您在未导入<mat-radio-button></mat-radio-button>的模块中使用。MatRadioModule

首先,您需要将angular/materialangular/cdk作为依赖项添加到您的项目中。

要正确导入MatRadioModule,请确保将其导入您正在使用的模块中<mat-radio-button></mat-radio-button>

像这样:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { AppComponent } from './app.component';
import { MatRadioModule } from '@angular/material/radio';

@NgModule({
  imports:      [ BrowserModule, FormsModule, MatRadioModule ],
  declarations: [ AppComponent ],
  bootstrap:    [ AppComponent ]
})
export class AppModule { }

现在我可以像这样在我的模板中使用它:(在AppModule

<mat-radio-button></mat-radio-button>

示例:https ://stackblitz.com/edit/angular-c8kmds

确保您遵循所有这些步骤并确保MatRadioModule正确导入Module


推荐阅读