2016-09-04 40 views
70

我從角2Angular2如果ngModel是一個表單標籤內使用,無論是名稱屬性必須設置或形式

core.umd.js:5995 EXCEPTION: Uncaught (in promise): Error: Error in app/model_exposure_currencies/model_exposure_currencies.component.html:57:18 caused by: If ngModel is used within a form tag, either the name attribute must be set or the form 
     control must be defined as 'standalone' in ngModelOptions. 

     Example 1: <input [(ngModel)]="person.firstName" name="first"> 
     Example 2: <input [(ngModel)]="person.firstName" [ngModelOptions]="{standalone: true}"> 



    <td *ngFor="let lag of ce.lags"> 
        <div class="form-group1"> 
        <input name="name" [(ngModel)]="lag.name" [ngModelOptions]="{standalone: true}" class="form-control" pattern="[0-9]*(\.[0-9]+)?" required> 
        </div> 

       </td> 

收到此錯誤這是我如何使用表單標籤:

<form #f="ngForm" (ngSubmit)="onSubmit()"> 

回答

186

如果使用ngForm,所有這些具有[(ngModel)]=""輸入字段必須具有屬性一個值。

<input [(ngModel)]="firstname" name="something"> 
+3

這是爲我工作。每個[(ngModel)] =「」字段都必須有一個名稱。 –

+1

只是我一直在尋找的答案。OP能否接受這是正確的答案。 –

+0

文檔在哪裏? –

2

你需要在你的page.ts中從@ angular/forms導入{NgForm}

代碼HTML:

<form #values="ngForm" (ngSubmit)="function(values)"> 
... 
<ion-input type="text" name="name" ngModel></ion-input> 
<ion-input type="text" name="mail" ngModel></ion-input> 
... 
</form> 

在你Page.ts,實現您的funcion操作表單數據:

function(data) {console.log("Name: "data.value.name + " Mail: " + data.value.mail);} 
10

每個開發人員都有一個共同的習慣,而不是閱讀完整的錯誤,剛剛閱讀第一行,開始尋找別人的答案:) :)我也是其中之一,這就是爲什麼我在這裏:

閱讀錯誤,清楚地說:

Example 1: <input [(ngModel)]="person.firstName" name="first"> 
Example 2: <input [(ngModel)]="person.firstName" [ngModelOptions]="{standalone: true}"> 

還有什麼我們需要了解這個錯誤?

使用任何一個選項,一切都將順利進行。

1

爲了能夠以您想要的形式顯示信息,您需要提供這些感興趣名稱的特定輸入。我建議你必須:


<form #f="ngForm" (ngSubmit)="onSubmit(f)"> ... 
<input **name="firstName" ngModel** placeholder="Enter your first name"> ... 
0

對我來說,解決方案是非常簡單的。我將<form>標記更改爲<div>,錯誤消失。

1

當你清楚地看看控制檯。它會給你兩個example.Implement任何這些。

<input [(ngModel)]="person.firstName" [ngModelOptions]="{standalone: 
    true}"> 

<input [(ngModel)]="person.firstName" name="first">

1

需要兩個屬性,並且還重新檢查所有形式的元素具有 「name」 屬性。如果你使用表單提交的概念,其他明智的只是使用div標籤,而不是表單元素。

<input [(ngModel)]="firstname" name="something"> 
0

嘗試......

<input type="text" class="form-control" name="name" placeholder="Name" 
        required minlength="4" #name="ngModel" 
        ngModel> 
        <div *ngIf="name.errors && (name.dirty || name.touched)"> 
         <div [hidden]="!name.errors.required" class="alert alert-danger form-alert"> 
          Please enter a name. 
         </div> 
         <div [hidden]="!name.errors.minlength" class="alert alert-danger form-alert"> 
          Enter name greater than 4 characters. 
         </div> 
        </div> 
相關問題