0

キーアップイベントとオブザーバブルオブジェクトをバインドしようとしています。テキストボックスフィールドでキーを押すたびに、コンソールに「あなたが押した:」+キー文字列を記録したいのですが、エラーは表示されませんが、キーを押しても何も起こりません。 .

 /// <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});

マップ関数内のデバッガポイントに到達できません..イベントが適切にバインドされていないように見えます..しかし、なぜですか?

4

1 に答える 1

5

1) が呼び出されるまで待つ必要ngAfterViewInitがあります (DOM にはまだテンプレートの要素がありません)。

map2)関数のコードを変更する必要があります

.map(e => { return e.target.value; })

また

.map(e => e.target.value)

プランカーの例

于 2016-11-24T20:23:37.130 に答える