angular2将事件绑定到可观察对象

TyF*_*ude 0 angular2-observables angular

我试着绑定键上事件和可观察对象,每次按下文本框字段中的一个键,我想在控制台中记录"你已按下:"+键字符串,没有显示任何错误,但按键时也没有任何反应. .

 /// <reference path="../../../typings/tsd.d.ts" />
import { Component } from '@angular/core';
import {Observable} from 'rxjs/Rx';
@Component({
    moduleId:module.id,
    selector: 'search-samp',
    template: '<input id="search" type="text" class="form-control" placeholder="search">'
})
export class SearchComponent {
    constructor(){
         var keyups = Observable.fromEvent($("#search"), "keyup").map(e=> {e.target.value});
         keyups.subscribe(data => { 
             debugger
             console.log("you have pressed:"+data)});
    }
 }
Run Code Online (Sandbox Code Playgroud)

为什么不工作?

编辑:

 var keyups = Observable.fromEvent($("#search"), "keyup").map(function(e){debugger});
Run Code Online (Sandbox Code Playgroud)

无法到达地图函数内的调试器点.看起来事件从未正确绑定..但为什么?

yur*_*zui 5

1)你应该等到ngAfterViewInit被调用(DOM中还没有模板的元素)

2)您还必须更改map函数的代码

.map(e => { return e.target.value; })
Run Code Online (Sandbox Code Playgroud)

要么

.map(e => e.target.value)
Run Code Online (Sandbox Code Playgroud)

Plunker示例