使用Angular 2应用程序中的材质单选按钮进行问题

时间:2017-09-21 09:36:27

标签: angular angular-material2

平台:Ubuntu 14.0.1 NPM版本:4.6.1

我有一个Angular 2应用程序,我正在尝试使用Material Radio按钮。我使用以下命令安装了这些:

npm i @angular2-material/radio

我在Module中添加了以下代码:

import { Component } from '@angular/core';
import { FormControl, FormGroup, FormBuilder, Validators } from '@angular/forms';
import { Router } from '@angular/router';
import { MdRadioModule } from '@angular2-material/radio';

以下是.html文件的内容(中断):

<md-radio-group>
          <md-radio-button value="1">Option 1</md-radio-button>
          <md-radio-button value="2">Option 2</md-radio-button>
        </md-radio-group>

当我运行应用程序时,我在浏览器的控制台&amp;中遇到以下错误我的申请在那里打破:

nhandled Promise rejection: Template parse errors:
'md-radio-group' is not a known element:
1. If 'md-radio-group' is an Angular component, then verify that it is part of this module.
2. If 'md-radio-group' is a Web Component then add "CUSTOM_ELEMENTS_SCHEMA" to the '@NgModule.schemas' of this component to suppress this message. (" <md-radio-button value="2">Option 2</md-radio-button>
        </md-radio-group>-->
        [ERROR ->]<md-radio-group></md-radio-group>
        <div class="page-card-separator">&nbsp;</div>
     "): AddProviderComponent@35:12 ; Zone: <root> ; Task: Promise.then ; Value: Error: Template parse errors:
'md-radio-group' is not a known element:
1. If 'md-radio-group' is an Angular component, then verify that it is part of this module.
2. If 'md-radio-group' is a Web Component then add "CUSTOM_ELEMENTS_SCHEMA" to the '@NgModule.schemas' of this component to suppress this message. (" <md-radio-button value="2">Option 2</md-radio-button>
        </md-radio-group>-->
        [ERROR ->]<md-radio-group></md-radio-group>
        <div class="page-card-separator">&nbsp;</div>
     "): AddProviderComponent@35:12
at TemplateParser.parse (compiler.umd.js:8502)
at RuntimeCompiler._compileTemplate (compiler.umd.js:16882)
at eval (compiler.umd.js:16805)
at Set.forEach (<anonymous>)
at compile (compiler.umd.js:16805)
at ZoneDelegate.invoke (zone.js?1505985812318:192)
at Zone.run (zone.js?1505985812318:85)
at zone.js?1505985812318:451
at ZoneDelegate.invokeTask (zone.js?1505985812318:225)
at Zone.runTask (zone.js?1505985812318:125) Error: Template parse errors:

4 个答案:

答案 0 :(得分:3)

请使用以下命令安装材料2:

  • package.json中,更改/添加"@angular/material""@angular/cdk"版本"2.0.0-beta.10"
  • 在终端窗口中,导航到项目中package.json所在的文件夹。
  • 运行命令npm install

要导入MdRadioModule,请使用以下命令:

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

链接到working demo

答案 1 :(得分:2)

首先安装@angular/material@angular/cdk,然后将相关的程序包导入app.module.ts文件中:

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

答案 2 :(得分:0)

我找到了解决方法here

import {MatRadioModule} from '@angular/material' 

在应用程序模块中

答案 3 :(得分:0)

我遇到了同样的问题。一旦在子级模块中导入MatRadioModule,它就可以工作。我有一个子级别的模块,名为wizard.module.ts。我导入MatRadioModule,然后还将其包含在Wizard.module.ts文件的NgModule的imports部分中。同样,一旦导入到子级模块,就可以根据需要在全局模块(app.module.ts)中注释导入部分。您无需从两个地方都导入。