2016-11-22 7 views
0

ngForで繰り返される複数のフォーム間の入力にngModelを使用するにはどうすればよいですか?Angular2はngForで繰り返される形式のngModelを使用できません

私がそうしようとするとAngular2がエラーになります。

Error: Permission denied to access property "rejection"

問題のあるコードの例のブロック:私はformタグを削除した場合

<div *ngFor="let item of items"> 
    <form name="itemForm"> 
     {{item.name}}<input [(ngModel)]="item.name"> 
    </form> 
</div> 

ここでは問題なくすべての実行、plunker https://plnkr.co/edit/YNZiCBeyqJoxO5ox5nlC?p=preview

ですが、私は私ができるので、それを必要としますすべての入力にEnterキーを使用して、対応するデータを独自の形式で更新します。

+0

私はPlunker https://plnkr.co/edit/Bx0zT8F0wENJ2NMZqRAy?p=previewを使用してエラーを再現することはできません。しかし、 'name'属性は欠けていました。 –

+0

2回目の開封時には、プランナーがエラーを投げないようになりました。私の実際のコードはまだ私にエラーを与えましたが、それはすでに解決されています。ありがとう。 – Skyvory

+0

入力タグに名前属性を追加することによって、何とか動作するあなたのプランです。 – Skyvory

答えて

2

フォームタグ内でngModelを使用する場合は、name属性を設定するか、フォームコントロールをngModelOptionsに「スタンドアロン」として定義する必要があります。以下は

はエラーなしで動作します:あなたはあなたの入力のための属性固有の名前を使用することができますranakrunal9

<div *ngFor="let item of items"> 
    <form name="itemForm"> 
    {{item.name}}<input [(ngModel)]="item.name" [ngModelOptions]="{standalone: true}"> 
    </form> 
</div> 
+2

'input'フィールドの' name'属性を追加すると、 'standalone'というよりむしろ意味があります。 –

+0

' input'フィールドの 'name'属性も同様に設定する傾向があります –

+0

Angular documentation(https: //angular.io/guide/forms): "[(ngModel)]をフォームと組み合わせて使用​​する場合、名前属性を定義する必要があります。" – elshev

0

としては、@によって指摘。ここでは、コード:

<div *ngFor="let item of items; let index=index"> 
    <form name="itemForm"> 
     {{item.name}}<input [(ngModel)]="item.name" name={{index}}> 
    </form> 
</div> 
関連する問題