2016-10-27 17 views
2

角度2のhttpで観測可能なものを使用するのは本当に難しいです。 以下のコードでは、in method:の値がコンソールに正しく表示されます。しかし、私が印刷しようとしたときMain:undefinedです。Angular 2 ObservablesとHttpで '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; 
    } 
} 

答えて

2

あなたはmapブロックでreturn文を逃しています。

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

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

map機能から何も返されません。それは

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

または

.map(searchTerm => this.getResults(searchTerm)) 
のいずれかでなければなりません
関連する問題