2017-07-18 108 views
0

我正在與Angular進行簡單的用戶名和密碼對話。我有一個模板:密碼或用戶名輸入兩次,當用角度輸入時輸入

<label class="welcome-content">Username:</label> 
<input #userName type="text" id="txtLoginUsername" (keyup.enter)="loginUser(userName.value)" 
                    (blur)="loginUser(userName); loginUser.value='' "> 
<label class="welcome-content">Password:</label> 
<input #userPass type="password" id="txtLoginPassword" (keyup.enter)="loginPass(userPass.value)" 
                    (blur)="loginPass(userPass); loginPass.value='' "> 
<button class="linkButton welcome-content" id="lnkLogin" (click)="loginUser(userName.value); loginPass(userPass.value)">Login</button> 

和控制器:

userName: string = null; 
userPass: string = null; 

loginUser(userName): void { 
    this.userName = userName; 
    console.log(this.userName); 
    } 

    loginPass(userPass): void { 
    this.userPass = userPass; 
    console.log(this.userPass); 
    } 

事工作的罰款,當我按一下按鈕,但是當我按在用戶現場我得到的用戶名輸出輸入兩次,和如果我在密碼字段中輸入密碼,那麼密碼也是一樣的。我如何製作這樣的值只能輸入一次?

回答

0

的位置代碼:

<input #userName type="text" id="txtLoginUsername" 
    (keyup.enter)="loginUser(userName.value)" 
    (blur)="loginUser(userName); loginUser.value='' "> 

在剛剛在所提供的代碼看,我會假設你真的只需要登錄時,他們點擊登錄按鈕的用戶。所以loginUser方法應該從兩個輸入框中移除。

<label class="welcome-content">Username:</label> 
<input #userName type="text" id="txtLoginUsername" > 
<label class="welcome-content">Password:</label> 
<input #userPass type="password" id="txtLoginPassword"> 
+0

那麼爲什麼https://angular.io/guide/user-input告訴我把兩者都放在? :/我認爲我需要模糊,因爲當字段中沒有輸入時,所以我沒有空白值?我真的希望他們能夠通過按Enter鍵來輸入,這是可能的。 –

+0

好的。非常感謝你。 –

+0

那麼流程應該如何工作?用戶不應該只能輸入用戶名,然後登錄,更正?他們需要輸入*兩個*用戶名和密碼?那麼在這種情況下,輸入/模糊應該如何流動? – DeborahK