Angular2中不支持radiogroup - 模板解析错误

时间:2016-12-15 17:03:01

标签: angular angular2-template radio-group

上下文

我有一个Angular2应用程序,其可访问性非常重要。当无线电输入具有相同的名称但未包含在radiogroup元素中时,我正在使用的可访问性评估器正在抱怨。但是当我确实放置radiogroup元素时,Angular2会给出模板解析错误:

Unhandled Promise rejection: Template parse errors:
'radiogroup' is not a known element:
1. If 'radiogroup' is an Angular component, then verify that it is part of this module.
2. If 'radiogroup' is a Web Component then add "CUSTOM_ELEMENTS_SCHEMA" to the '@NgModule.schemas' of this component to suppress this message. ("
<div>
  [ERROR ->]<radiogroup>
    <input type="radio" name="foo id="true" label="True" value="true" />
    <in"): App@2:6 ; Zone: <root> ; Task: Promise.then ; Value: Error:             

守则

import { Component } from '@angular/core';

@Component({
  selector: 'my-component',
  template: `
    <radiogroup>
      <input type="radio" name="my-radio" value="true" />True
      <input type="radio" name="my-radio" value="false" />False
    </radiogroup>
  `
})
export class MyComponent {};

我已将FormsModule导入模块。

Plunkr

1 个答案:

答案 0 :(得分:2)

radiogroup不是标准的HTML元素,它是一个如下所示的属性,(Check this PLunker

    <div> 
      <input type="radio" radiogroup="alignment" name="my-radio" value="true" />True
      <input type="radio" radiogroup="alignment" name="my-radio" value="false" />False
    </div>

如果要创建名为radiogroup的组件,则需要在使用之前在NgModule中声明它,

<强>更新

您可以添加不带模板的指令,以便Angular不会抱怨未知元素,它可以与基于XUL的应用程序一起构建用于构建Firefox等应用程序的用户界面。

@Directive({
  selector: 'radiogroup'
})
export class RadioGroupDirective {  }

这是Plunker

我之前没有在Firefox中测试过,所以不确定是否会得到ttributes, properties and methods of radiogroup,理想情况下它应该可以正常工作。

希望这会有所帮助!!