Angular 角度4可观测停止工作
我用的是anuglar 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函数,但它不起作用。我还有另一个项目,它有完全相同的导入/验证,并以完全相同
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}代码>