当前位置: 首页 > 知识库问答 >
问题:

角度2可观察/受试者无法读取属性“下一步”

宗增
2023-03-14

我发现这个伟大的帖子创建和返回观察角2服务,现在我尝试做同样的事情,但得到这个错误:

core.umd.js:2838异常:无法读取未定义的属性'Next'

这是我的服务:

@Injectable()
export class ReadBuchungenService {

    public activeProject : ReplaySubject<any>;
    private get_all_buchungen_url : string = "xxxxxxx/xxx/";


    constructor (private http : Http) {}

    public load(timestamp : number) {
        let params = new URLSearchParams();
        params.set('timestamp', String(timestamp));

        this.http.get(this.get_all_buchungen_url, { search: params })
            .subscribe(res => this.activeProject.next(res));
        return this.activeProject;
    }
}

在es6中编译,下面是package.json中的依赖项:

"dependencies": {
    "@angular/common": "^2.2.4",
    "@angular/compiler": "^2.1.2",
    "@angular/core": "^2.2.4",
    "@angular/http": "^2.1.4",
    "@angular/platform-browser": "^2.1.2",
    "@angular/platform-browser-dynamic": "^2.1.2",
    "@angular/router": "^3.1.4",
    "core-js": "^2.4.1",
    "reflect-metadata": "^0.1.8",
    "rxjs": "5.0.0-beta.12",
    "systemjs": "^0.19.40",
    "zone.js": "^0.6.26"
  }

谢谢

好的,现在我尝试设置重放主题对象的宽度:

public activeProject : ReplaySubject<any> = new ReplaySubject(1);

但是我得到了一个意想不到的标记

完整错误的图像:

共有3个答案

袁致远
2023-03-14

您没有初始化activeProject。尝试:

public activeProject : ReplaySubject<any> = new ReplaySubject<any>(1);
雷飞虎
2023-03-14

现在我发现了错误,它是来自ReplaySubject类的import语句。

错误:import{Observable,ReplaySubject}来自“rxjs”

右:从'rxjs/ReplaySubject'导入{ReplaySubject}

以下是服务的完整代码:

import  {Inject, Injectable} from '@angular/core';
import  { Http, URLSearchParams } from '@angular/http';
import 'rxjs/Rx';
import { ReplaySubject } from 'rxjs/ReplaySubject';


@Injectable()
export class MyService {

    public activeProject: ReplaySubject<any> = new ReplaySubject(1);
    private get_all_buchungen_url: string = "xxxx/xxx";

    constructor(private http: Http) {
    }

    public load(timestamp: number) {

        let params = new URLSearchParams();
        params.set('timestamp', String(timestamp));

        this.http.get(this.get_all_buchungen_url, {search: params})
            .subscribe(res => this.activeProject.next(res));
        console.log(this.activeProject)
        return this.activeProject;
    }
}

叶华皓
2023-03-14

您的activeProject未设置。试着这样定义它:

public activeProject:ReplaySubject<any> = new ReplaySubject(1);
 类似资料:
  • 学习角得到服务和组件和可观察性。 我正在尝试在我的演示应用程序中实现暗模式。该控件由一个服务完成,该服务根据浏览器默认值(如果找到)设置暗主题。 它在应用程序组件中初始化,以便以后在应用程序中放置控制开关。 暗模式从布尔值开始工作,因此为true或false。据我所知,使用一个可观察对象是不够的,因为我希望多个订阅者都以两种方式绑定到订阅,每种方式在服务中切换这些可观察对象。到目前为止,我很肯定这

  • 我在使用角度异步管道时遇到了一个问题。基于从后端接收的内容,使用ngFor的模板中显示的内容的顺序不同。 代码如下: 我已经创建了一个组件称为头组件,它收到一个可观察的头$作为输入参数。 在导入标头组件的父组件内部

  • 我对可观察量很陌生。如何仅从一个简单的字符串创建可观察的?然后订阅它并在它发生变化时输出它。 这有意义吗? 我在谷歌搜索上一点运气都没有。可能是错误的关键字? 添加一些代码以更好地解释: 我想我在这里做错了什么?但不知道怎么问。我将不胜感激的任何解释。

  • 问题内容: 我一直在阅读Observer模式,以保持UI处于最新状态,但仍然看不到它的用途。即使在我的特定对象中通知了我的MainActivity然后运行update();方法我仍然无法使用Pet对象来获取更新值,因为该对象是在Oncreate中创建的…而我只是无法创建新对象,因为那时变量会有所不同..这是我的实施,它似乎不起作用。 观察者/ MainActivity 可观察/宠物 问题答案: 首

  • 我来自同步编程背景,我很难理解可观察性。 这是我的服务/提供商的摘录(离子2项目) 我将从订阅它。关于这一点,我有几个问题。 > 即使我没有声明,上面的代码是否返回一个可观察/观察者? 响应是JSON。如何检查/处理JSON并执行一些操作,如 那就做吧 我认为应该在提供者类中完成。只是一个典型的提示/例子将是真棒。 当请求到达subscribe方法时,它是否真的发生了? 创建和返回Angular