2017-09-26 70 views
1

當我試圖將數據推入數據流從嘗試推送可觀察流中的數據時出錯。 Angular

可觀察我得到錯誤,我的觀察者是未定義的。代碼如下:

@Injectable() 

export class CategoryService { 

public category:Subject<Category>; 

public categories:Observable<Category[]>; 

private categoriesObserver:any; 

    constructor(private authHttpService:AuthHttpService,private authService:AuthService) { 


    this.categories = new Observable(observer=> 

    {this.categoriesObserver = observer}).share(); 

this.category = new BehaviorSubject<Category>(null); } 



getAll() { 



    console.log(this.categoriesObserver); 

    return this.authHttpService 

    .get('/api/categories', { headers: contentHeaders }) 

    .map((res: Response) => res.json()) 

    .map((data) => { 


     var categories = data.map((category) => { 

     return new Category(

      category._id, 

      category.name, 

      category.description, 

      category.owner, 

      category.collaborators 

     ); 

     }); 


    this.categoriesObserver.next(categories); 


     return categories; 

因此應用程序提供了一個錯誤this.categoriesObserver是undefined.and如果我嘗試去定義它事先我得到錯誤的next()不是一個函數。它可能是什麼?

回答

1

該錯誤是由於我將數據推送到可觀察的事件而不是事件的主體所引起的。