2017-05-13 51 views
0

我在ng中收到錯誤ERR:... template.html:屬性'email'在類型'{} 「採用了棱角分明CLI的編譯時> NG構建--prod --aot角度 - 屬性「電子郵件」在類型爲「{}」的AoT編譯中不存在

表單模板:

 <form (ngSubmit)="login()" #loginForm="ngForm"> 

      <input [(ngModel)]="user.email" id="email" 
        type="email" class="validate" name="email" required> 
      <label for="email">Email</label> 

      ... 

     </form> 

LoginComponent:

export class LoginComponent { 

    public user = {}; 
    public errorMsg = ''; 
    email: any; 
    password: any; 

constructor(
... 
) { 

添加類型的電子郵件:字符串或電子郵件:任何在表單的組件沒有辦法。它似乎指的是工廠的Angular組件{}。我怎樣才能解決這個錯誤?

+1

組件的代碼在哪裏?你讀過代碼嗎?您正在使用的「email」字段位於組件的「用戶」字段中。不在組件上。 –

+0

分配給'user'的值在哪裏以及如何分配? –

+0

我想這應該有助於用戶:任何= {} – yurzui

回答

2
public user = {}; 

此用戶對象沒有任何名爲email的屬性。將其更改爲

​​

例如。

+0

完美。謝謝! –

1

您的問題來自用戶實例。

下面的實例應該工作:

public user = {'email': ''} 

但類似的錯誤可能發生的密碼(這取決於你如何在模板中使用它)。

在這種情況下,實例化應該是:

public user = {'email': '', 
       'password': '' 
       } 

更好的方法是創建一個用戶類。該user.ts應該像如下:

export class User { 

    constructor(public email?: string, 
       public password?: string) { } 

} 

然後實例在LoginComponent用戶是這樣的:

public user: User = new User(); 
0

您也可以指定一個類型的對象。

public user = <{email: string}>{}; 
相關問題