2

angular 2でhttpでオブザーバブルを使用するのは本当に難しいと思います。以下のコードでは、in method:値がコンソールに正常に出力されます。しかし、印刷しようとしたときですMain:undefined

から値を取得するにはどうすればよいMainですか?

テンプレート コード:

template:`
<input 
        class="form-control"
      [formControl]="searchBox" 
      placeholder="Search Spotify artist" />
`

コンポーネントコード:

export class SpotifySearchComponent {

  private searchBox = new FormControl();

  constructor(private _http: Http){

  }

  ngAfterViewInit() {    
    var keyups = this.searchBox
        .valueChanges
        .debounceTime(200)
        .map(searchTerm => {
            this.getResults(searchTerm);           
        });

    var subscription = keyups.subscribe(res => console.log("Main:" + res));       
  }

  getResults(searchTerm){           
      console.log("in method:" + searchTerm);
      return searchTerm;
  }  
}
4

2 に答える 2

1

関数から何も返していませんmap。どちらかである必要があります

.map(searchTerm => {
    return this.getResults(searchTerm);           
}

また

.map(searchTerm => this.getResults(searchTerm))
于 2016-10-27T09:09:41.463 に答える