角度2可观察,订阅不起作用

odi*_*com 1 observable angular

我正在进行角度观察的基本测试,以观察文本框的键盘,我没有得到任何错误,但订阅不起作用,所以没有任何进入控制台的..

import {Component} from 'angular2/core';
import {Observable} from 'rxjs/Rx';

@Component({
    selector: 'appobserve',
    template: `
      <b>Angular 2 Component Using Observables!</b>

      > input id="search" type="text" name="search" class="form-control" >
    `
})
export class ObserveComponent {
  constructor() {
      console.log('startedbbb');
        var keyups = Observable.fromEvent($('#search'),'keyup');
        keyups.subscribe(function(ev) { console.log("click", ev) });
  }
}
Run Code Online (Sandbox Code Playgroud)

Pie*_*Duc 7

这是angular2,有jquery,有javascript,有typescript,有rx ..和一些格式奇怪的html.

  • 永远不要function在组件/服务/类中使用关键字,这会搞乱this上下文
  • 不需要jQuery,只需(keyup)在输入元素上添加一个角度监听器
  • 不需要可观察,这是在角度模板中处理的,它已经使用了observables(或实际上EventEmitters使用了observables)

这将有效:

@Component({
    selector: 'appobserve',
    template: `
      <b>Angular 2 Component Using Observables!</b>
      <input type="text" name="search" class="form-control" (keyup)="onKeyUp($event)">
    `
})
export class ObserveComponent {

   constructor() {}

   onKeyUp(event: KeyboardEvent): void {
       console.log(event);
   }
}
Run Code Online (Sandbox Code Playgroud)