2016-03-15 243 views
2

在我的應用程序中,有條件地我添加了一個類。當用戶輸入一些內容時,我正在檢查該值,並相應地添加了類名。它工作正常。設置在keyup一定的價值 -Angular2 - Keyup需要澄清

,但它的(keyup)='0'集只更新。這不像angular 1這裏。

所以任何人都可以解釋我爲什麼在這裏設置(keyup)=0?它爲我們做了什麼?

這裏是我的代碼:

import {Component} from "angular2/core" 

@Component({ 

    selector : 'my-component', 

    template : ` 
       <h2>My Name is: {{name}} 
        <span [class.is-awesome]="formReplay.value === 'yes' ">So good</span> 
       </h2> 
       <input type="text" #formReplay (keyup)="0" /> 
       `, 

    styles : [` 

     .is-awesome{ 
      color:green; 
     } 

    `] 

}) 

export class MyComponent { 
    name = "My Name"; 
} 
+1

什麼都沒有,該鍵盤除了觸發變化檢測,什麼都不做。 '0'意味着什麼都沒有,因爲有一個空的事件[產生錯誤](https://github.com/angular/angular/issues/3754)。 –

回答

5

Offical docs

@Component({ 
    selector: 'loop-back', 
    template:` 
    <input #box (keyup)="0"> 
    <p>{{box.value}}</p> 
    ` 
}) 
export class LoopbackComponent { } 

看看這個在官方文檔。

這不會在所有除非我們綁定到一個事件工作。

如果我們對異步事件(如擊鍵)做出響應,Angular只會更新綁定(並因此更新屏幕)。

這就是爲什麼我們的keyup事件綁定到呢......嗯,沒事 聲明。我們綁定到數字0,這是我們可以用 想到的最短語句。這是所有需要保持Angular快樂。我們說它會 聰明!

+0

啊!這是在文檔上!太好了! –

+0

是的,它在那裏埃裏克! :-) – micronyks

+0

更好的解決方案在這裏 - http://stackoverflow.com/a/35368127/968003。 當前不適用於''輸入類型=「text」[ngModel] =「mymodel」(keypress)=「mymodel = $ event.target.value」/> '輸入[type =「number」]'而不是輸入數值時,用戶點擊向上/向下箭頭。然後輸入值正在改變,但'keyup'事件沒有開始。 –