2016-03-15 155 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'事件没有开始。 –