angular2 将事件绑定到可观察对象
angular2 bind events to observable object
我尝试绑定按键事件和可观察对象,每次在文本框字段中按下一个键,我想在控制台中记录 "you have pressed:"+key 字符串,没有显示任何错误但也没有任何反应按键时..
/// <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)});
}
}
为什么它不起作用?
已编辑:
var keyups = Observable.fromEvent($("#search"), "keyup").map(function(e){debugger});
无法到达映射函数内的调试器点..看起来事件从未正确绑定..但为什么呢?
1) 你应该等到 ngAfterViewInit
被调用(DOM 中还没有模板元素)
2) 您必须更改 map
函数的代码
.map(e => { return e.target.value; })
或
.map(e => e.target.value)
我尝试绑定按键事件和可观察对象,每次在文本框字段中按下一个键,我想在控制台中记录 "you have pressed:"+key 字符串,没有显示任何错误但也没有任何反应按键时..
/// <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)});
}
}
为什么它不起作用?
已编辑:
var keyups = Observable.fromEvent($("#search"), "keyup").map(function(e){debugger});
无法到达映射函数内的调试器点..看起来事件从未正确绑定..但为什么呢?
1) 你应该等到 ngAfterViewInit
被调用(DOM 中还没有模板元素)
2) 您必须更改 map
函数的代码
.map(e => { return e.target.value; })
或
.map(e => e.target.value)