Angular 2 - 无法绑定到“ngModel”,因为它不是“输入”的已知属性
Posted
技术标签:
【中文标题】Angular 2 - 无法绑定到“ngModel”,因为它不是“输入”的已知属性【英文标题】:Angular 2 - Can't bind to 'ngModel' since it isn't a known property of 'input' 【发布时间】:2016-12-18 20:57:57 【问题描述】:我在 plunker 中有一个 Angular 2 内联编辑组件。但突然我得到了上述错误。怎么回事?
Plunker 代码:http://plnkr.co/edit/3AODo6YGEhvPOKzloofz?p=preview
父组件:
<inline-edit [editEnable]="edit" [(ngModel)]="editableText" (onSave)="saveEditable($event)"></inline-edit>
子组件:
<div id="inlineEditWrapper" (click)="edit(value)" class="iedit">
<!-- Editable value -->
<a [hidden]="editing"> value <i class="glyphicon glyphicon-pencil" data-hidden="editing"></i></a>
<!--<span class="glyphicon glyphicon-pencil" [hidden]="editing"></span>-->
<!-- inline edit form -->
<form #inlineEditForm="ngForm" class="inlineEditForm form-inline" (ngSubmit)="onSubmit(value)" [hidden]="!editing">
<div class="form-group">
<!-- inline edit control -->
<input style="margin-bottom:10px;" #inlineEditControl class="form-control" [(ngModel)]="value"/>
<!-- inline edit save and cancel buttons -->
<br/>
<span >
<button type="submit" class="btn btn-primary">Change</button>
<button class="btn btn-default" (click)="cancel(value)">Cancel</button>
</span>
</div>
</form>
</div>
【问题讨论】:
你用的是哪个 angular2 版本? Angular 2 RC4 版本。 【参考方案1】:您可以按照以下步骤操作:
第 1 步:加载角度形式的包
'@angular/forms':
main: 'bundles/forms.umd.js',
defaultExtension: 'js'
第 2 步:导入 disableDeprecatedForms,provideForms
import disableDeprecatedForms, provideForms from '@angular/forms';
bootstrap(App, [
disableDeprecatedForms()
provideForms()
]).catch(err => console.error(err));
第 3 步:从 inline-edit.component.ts 中的“@angular/forms”导入 ControlValueAccessor、NG_VALUE_ACCESSOR
第 4 步:将表单中的输入元素调整为:
<input style="margin-bottom:10px;" #inlineEditControl class="form-control" name="first_name" #first_name="ngModel" [(ngModel)]="value"/>
here 对我有用
【讨论】:
以上是关于Angular 2 - 无法绑定到“ngModel”,因为它不是“输入”的已知属性的主要内容,如果未能解决你的问题,请参考以下文章
无法将 [(ngModel)] 绑定到 Angular html
Angular 4.x - 无法绑定到“ngModel”,因为它不是“输入”的已知属性
在新的 Angular 2 表单中将 NgModel 绑定到 FormControl
使用 ngModel 的 Angular 2 双向绑定不起作用