NGM模型有什么问题?我想要输入框作为angular 2中的组件

NGM模型有什么问题?我想要输入框作为angular 2中的组件,angular,angular2-forms,Angular,Angular2 Forms,我希望输入框作为一个组件,具有自定义验证,可以注入到这个组件中。因此,一个输入组件可用于控制整个项目,并且验证非常通用,因此它们位于一个位置,我们可以在任何地方重新利用该组件 输入组件的代码如下所示:- import { Component, Input, Output, EventEmitter } from '@angular/core'; @Component({ selector: 'alt-text-field', template: ` <input

我希望输入框作为一个组件,具有自定义验证,可以注入到这个组件中。因此,一个输入组件可用于控制整个项目,并且验证非常通用,因此它们位于一个位置,我们可以在任何地方重新利用该组件

输入组件的代码如下所示:-

import { Component, Input, Output, EventEmitter } from '@angular/core';

@Component({
    selector: 'alt-text-field',
    template: `
    <input 
    #field="ngModel"
    class="form-control"
    [id]="id"
    [name]="name"
    [ngModel]="value"
    (ngModelChange)="onValueChange($event)"
    [placeholder]="placeholder"
    [type]="type"
    minlength="5" maxlength="8"
    required
    > {{field.className}}`
})
export class AltTextFieldComponent {
    /** ID for an element */
    @Input() id: string;

    /** Name of the Text Field Element */
    @Input() name;

    /** Placeholder for the Text Field */
    @Input() placeholder: string;

    /** Type for the Text Field */
    @Input() type: string;

    /** Value for the Text Field */
    @Input() value: String;

    /** Value change to register a change in the value of the component */
    @Output() valueChange = new EventEmitter<string>();

    /** Method to handle the change in the input field */
    onValueChange(event){
        this.valueChange.emit(event)
    }
}
从'@angular/core'导入{Component,Input,Output,EventEmitter};
@组成部分({
选择器:“alt文本字段”,
模板:`
{{field.className}`
})
导出类AltTextFieldComponent{
/**元素的ID*/
@Input()id:string;
/**文本字段元素的名称*/
@输入()名称;
/**文本字段的占位符*/
@Input()占位符:字符串;
/**为文本字段键入*/
@Input()类型:string;
/**文本字段的值*/
@Input()值:字符串;
/**值更改以注册组件值的更改*/
@Output()valueChange=neweventemitter();
/**方法来处理输入字段中的更改*/
onValueChange(事件){
this.valueChange.emit(事件)
}
}
在我添加
#field=“ngModel”
之前,它工作正常。添加此项后,我无法处理输入。它不会打印类名


另一方面,我也需要表单成为一个组件。因此,它可以在整个应用程序中使用。请帮助我了解我的方法是正确的还是我假设了什么错误。如果可能的话,请给我指出这类代码。

既然您已经绑定了[ngModel]=“value”,为什么需要#field=“ngModel”?我认为为了工作,您应该将#field绑定到FormControl对象,我相信ngModel不是t@theFreedomBanana确切地说,当我尝试进行表单验证时,我遇到了问题。当我将其包装到父组件中时,验证就会消失:-/最好是一个能重现你问题的人。:)