簡體   English   中英

Angular 2 - 無法綁定到'ngModel',因為它不是'input'的已知屬性

[英]Angular 2 - Can't bind to 'ngModel' since it isn't a known property of 'input'

我在plunker中有一個Angular 2 Inline Editing組件。 但突然間我得到了上述錯誤。 這是怎么回事?

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 }}&nbsp;<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>

您可以按照以下步驟操作:

第1步:為角形加載包裝

'@angular/forms': {
      main: 'bundles/forms.umd.js',
      defaultExtension: 'js'
}

第2步:導入disableDeprecatedForms,提供Forms

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"/>

那對我有用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM