2017-08-04 93 views
0

UPDATE:如何訂閱Observable與另一個Observable合併?

看來我進口可觀察到從錯誤的地方......那是如此混亂,是因爲我有這個說法import 'rxjs/add/observable/fromevent'; ...

所以我改變來自: import { Observable } from 'rxjs/observable'; 要: import { Observable } from 'rxjs';

現在得到不同的錯誤:

ERROR TypeError: Invalid event target

更新


export class AppComponent { 

    @ViewChild('b') button; 

    posts: any[]; 
    clickStream$: Observable<any>; 

    constructor(http: Http){ 
     this.clickStream$ = Observable.fromEvent(this.button, 'click').mergeMap(
     () => { 
      var randomOffset = Math.floor(Math.random() * 500); 
      return http.get('https://api.github.com/users?since=' + randomOffset); 
     }); 
    } 

    ngOnInit() { 
     this.clickStream$.subscribe(res => { this.posts = res.json()}); 
    } 
} 

在這裏,我得到按鈕點擊流,那麼我希望它在URL的末尾合併其他可觀察從get的方法,但隨機數。所以我的最終目標是每次單擊按鈕時呈現不同的API用戶列表。

HTML:

<button>Click</button> 

<div *ngFor="let post of posts"> 
{{ post.login }} 
</div> 

控制檯錯誤:

ERROR TypeError: WEBPACK_IMPORTED_MODULE_1_rxjs_observable.Observable.fromEvent is not a function

回答

1

不completally確定的事情我做了,但似乎做它的工作:

import { Component, ViewEncapsulation, OnInit, OnChanges, SimpleChanges, ViewChild, ElementRef } from '@angular/core'; 
import { initializeApp, database } from 'firebase'; 
import { Observable } from 'rxjs'; 
import { Http } from '@angular/http'; 

@Component({ 
    selector: 'app-root', 
    templateUrl: './app.component.html', 
    styleUrls: ['./app.component.css'] 
}) 
export class AppComponent { 

    @ViewChild('b') button: ElementRef; 

    posts: any[]; 
    clickStream$: Observable<any>; 

    constructor(private http: Http){ 
    } 

    ngOnInit() { 
     this.clickStream$ = Observable.fromEvent(this.button.nativeElement, 'click').mergeMap(
     () => { 
      var randomOffset = Math.floor(Math.random() * 500); 
      return this.http.get('https://api.github.com/users?since=' + randomOffset); 
     }); 

     this.clickStream$.subscribe(res => { this.posts = res.json()}); 
    } 
} 
0

試試這個:

import { Observable } from 'rxjs/Observable'; 
import 'rxjs/add/observable/fromEvent'; 
+0

請閱讀我的問題。我有這些進口 –

+0

對不起,似乎你解決了你的問題) –

相關問題