Angular 角度4可观测停止工作

Angular 角度4可观测停止工作,angular,typescript,rxjs,angular-material,observable,Angular,Typescript,Rxjs,Angular Material,Observable,我用的是anuglar 4和棱角材料。我创建了一个有角度的材质表。这需要一个可观察的模型。所以我从列表中创建了一个可观察的。在我开始删除一些组件之前,它工作得很好。这些组件与我的桌子或可观察的物体无关,但突然它开始崩溃 现在我得到一个错误: ERROR TypeError: this._subscribe is not a function 我不知道为什么会这样。我正在导入使用它们的组件中的Observable和.of函数,但它不起作用。我还有另一个项目,它有完全相同的导入/验证,并以完全相同

我用的是anuglar 4和棱角材料。我创建了一个有角度的材质表。这需要一个可观察的模型。所以我从列表中创建了一个可观察的。在我开始删除一些组件之前,它工作得很好。这些组件与我的桌子或可观察的物体无关,但突然它开始崩溃

现在我得到一个错误:

ERROR TypeError: this._subscribe is not a function
我不知道为什么会这样。我正在导入使用它们的组件中的Observable和.of函数,但它不起作用。我还有另一个项目,它有完全相同的导入/验证,并以完全相同的方式使用可观察的。但是这个项目运作得非常好

使用Observable的地方:我订阅http get响应,使用
obbservable.of()
将列表转换为Observable

如果需要更多信息,请与我联系

谢谢

编辑组件:

import { Component, OnInit } from '@angular/core';
import { Observable } from "rxjs/Observable"
import { HttpClient, HttpErrorResponse } from '@angular/common/http';
import { ProjectService } from '../services/project.service';
import { UserService } from '../services/user.service';
import { Subject } from 'rxjs/Subject';
import { DataSource } from '@angular/cdk/collections';
import { Injectable } from '@angular/core';
import { ApplicationRef, ChangeDetectorRef } from '@angular/core';
import { HttpClient, HttpErrorResponse } from '@angular/common/http';

@Component({
  selector: 'bitbucket-project',
  templateUrl: './bitbucket-project.component.html',
  styleUrls: ['./bitbucket-project.component.css'],
styles: [ `
.deadProjectTable{
  background-color: #E3F2FD;
  overflow: auto;
  width: 100%;
  height: auto;
  max-height: 250px;
  float: top;
}

.projectHeader{
  color: #5C6BC0;
  font-size: 1.00em;
}

.deadProjectTitle {
  color: #3F51B5;
  font-size: 1.5em;
}
`
  ]
})
export class BitbucketProjectComponent implements OnInit {
  numberOfProjects:string;
  anonymousProjects:string[] = [];
  deadProjectNameList:string[] = [];
  deadProjectKeyList:string[] = [];
  deadProjectReasonList:string[] = [];
  projectDateValue: Date
  date: number
  month: number  
  year: number
  formattedDate: string

  dataSource = new ExampleDataSource(this);
  displayedColumns = ['key', 'name', 'reason'];

  constructor(private projectService: ProjectService, private `dataComponent:DatasComponent) {
let project = new Project('test', 'test', 'test');
this.deadProjectsList.push(project)}`
 ngOnInit() {
this.projectNumberRequest();
this.anonymousProjectRequest();


}

projectNumberRequest() {
this.projectService.getNumberOfProjects().subscribe((numberOfProjects) => {
  console.log(numberOfProjects['value']);
  this.numberOfProjects = numberOfProjects['value'];
 this.dataComponent.returnDataList().setProjectNumber(this.numberOfProjects);
}
 );


 }
anonymousProjectRequest() {
this.projectService.getAnonymousProjects().subscribe((anonymousProjects) => {
  console.log(anonymousProjects['list']);
  this.anonymousProjects = anonymousProjects['list'];
  this.dataComponent.setAnonymousProjectsList(this.anonymousProjects);
  if (this.anonymousProjects[0] == undefined) {

  } else {

  }
});


}
formatProjectDate() {
console.log("reaches that 2")
if (this.projectDateValue != null && this.projectDateValue != undefined) {
  this.date = this.projectDateValue.getDate();
  this.month = this.projectDateValue.getMonth() + 1;
  this.year = this.projectDateValue.getFullYear();
  this.formattedDate = this.year + "-" + this.month + "-" + this.date;
  return true;
} else {
  alert("Enter valid date");
  return false;
}


}deadProjectListRequest() {
this.formatProjectDate();
this.deadProjectsList = [];
this.projectService.getDeadProjectList(this.formattedDate).subscribe((deadProjectList) => {
  console.log('reached')
  console.log(deadProjectList['list']);
  this.deadProjectNameList = deadProjectList['list'];
  this.deadProjectKeyList = deadProjectList['seondList'];
  this.deadProjectReasonList = deadProjectList['thirdList'];
  console.log(this.deadProjectNameList.length);
  for (var _i = 0; _i < this.deadProjectNameList.length; _i++) {
    let project = new Project(this.deadProjectNameList[_i], this.deadProjectKeyList[_i], this.deadProjectReasonList[_i]);
    this.deadProjectsList.push(project)
  }
  this.dataSource = new ExampleDataSource(this);
  console.log(this.deadProjectsList[0]);
  console.log(this.deadProjectsList[1]);
});


 }
}
export class Project {

constructor(key: string, name: string, reason: string) {
      this.key = key;
      this.name = name;
      this.reason = reason;
    }
    key: string;
    name: string;
    reason: string;
  }

export class ExampleDataSource extends DataSource<any> {
    constructor(private projectComponent: BitbucketProjectComponent) {
      super();
      this.connect();
    }

    connect(): Observable<Project[]> {
      Observable.create(this.projectComponent.deadProjectsList)
      var tempo =  Observable.create(this.projectComponent.deadProjectsList);
      return tempo;

    }

    disconnect() {
    }
  }

在您的serive方法中尝试以下方法:

在服务的所有方法中添加
map()

getNumberOfProjects() {
    return this.http.get('http://localhost:7990/bitbucket/rest/projects/1.0/projects/number', {
        headers: new HttpHeaders().append('Authorization', 'Basic YWRtaW46YWRtaW4=')
    }).map(res => res.json());
}

在您的serive方法中尝试以下方法:

在服务的所有方法中添加
map()

getNumberOfProjects() {
    return this.http.get('http://localhost:7990/bitbucket/rest/projects/1.0/projects/number', {
        headers: new HttpHeaders().append('Authorization', 'Basic YWRtaW46YWRtaW4=')
    }).map(res => res.json());
}

你能展示一下可观察的和订户的方法吗?如果你能粘贴整个组件代码就更好了。我已经添加了完整的组件。如果您还需要其他信息,请告诉我。发布您的
项目
服务我已添加项目服务当您尝试订阅不可见的内容时,会发生此错误。你的服务看起来不错。您是否尝试对订阅的代码进行注释,以发现发生了什么方法错误?您能否显示可观察的方法和订阅的方法?如果你能粘贴整个组件代码就更好了。我已经添加了完整的组件。如果您还需要其他信息,请告诉我。发布您的
项目
服务我已添加项目服务当您尝试订阅不可见的内容时,会发生此错误。你的服务看起来不错。您是否尝试对订阅的代码进行注释以查找发生了什么方法错误?它找不到方法.map。它给了我一个错误:属性“map”在类型“Observable”上不存在,我认为这不是问题所在,因为另一个组件也使用这个服务,但它工作得很好。一天前,这也奏效了。解决方案是从“rxjs/Rx”导入{Observable}找不到方法。映射。它给了我一个错误:属性“map”在类型“Observable”上不存在,我认为这不是问题所在,因为另一个组件也使用这个服务,但它工作得很好。一天前,这也奏效了。解决方案是从“rxjs/Rx”导入{Observable}