如何创建自定义组件,就像本机<input>标签一样?我想让我的自定义表单控件能够支持ngControl,ngForm,[(ngModel)].
据我所知,我需要实现一些接口,使我自己的表单控件工作就像本机一样.
此外,似乎ngForm指令仅绑定<input>标签,这是对的吗?我该如何处理?
让我解释为什么我需要这个.我想包装几个输入元素,使它们能够作为一个单独的输入一起工作.还有其他方法可以解决这个问题吗?再一次:我想让这个控件像原生一样.验证,ngForm,ngModel双向绑定等.
ps:我使用的是Typescript.
我正在为我的应用程序使用PrimeNG和Angular2.
我有一个组件应该显示可选主题的下拉菜单.我已经按照PrimeNG Dropdown文档进行操作,据我所知,我的所有内容都以同样的方式构建.但我总是得到错误"没有价值访问者''"
theme.component.ts:
import { Component, OnInit, Input } from '@angular/core'
import { Dropdown, SelectItem} from 'primeng/primeng';
@Component({
selector: 'my-themes',
templateUrl: 'dist/html/theme.component.html',
directives: [Dropdown],
})
export class ThemeComponent {
selectables: SelectItem[];
style: string;
constructor() {
this.selectables = [];
this.selectables.push({ label: 'Nightflat', value: 'Nightflat' });
this.selectables.push({ label: 'Flat', value: 'Flat' });
}
ngOnInit() {
}
}
Run Code Online (Sandbox Code Playgroud)
theme.component.html:
<p-dropdown [options]="selectables" [(ngModel)]="style"></p-dropdown>
Run Code Online (Sandbox Code Playgroud)
任何可能出现问题的想法?:(编辑:问题实际上是ngModel.如果我从html标签中删除它,将显示Dropdown.