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

离子2-导入/注入角度2 HTTP组件

汲涵育
2023-03-14

我有一个ionic 2应用程序,我一直在使用本地数据进行测试。现在,我正试图向我的api发出一些Ajax请求以获取数据。

在我的应用程序中。js文件,我正在这样定义我的组件:

import {UserProvider} from './providers/user-provider';
...
    @App({
      templateUrl: 'build/app.html',
      providers: [UserProvider]
    })

然后,我的用户提供者。js文件的定义如下:

import {Injectable} from 'angular2/core';
import {Http, httpInjectables} from 'angular2/http';

@Injectable()
export class UserProvider {
    constructor(http: Http) {
        http.get('www.someURL.com').toRx().map(res => res.json())
            .subscribe(data => console.log(data));
    }
}

然后,最后,我用我的signup.js文件初始化我的注册视图:

import {Page, NavController} from 'ionic/ionic';
import {TabsPage} from '../tabs/tabs';
import {UserProvider} from '../../providers/user-provider';

@Page({
  templateUrl: 'build/pages/signup/signup.html'
})
export class SignupPage {
  constructor(nav: NavController, userProvider: UserProvider) {
    this.userProvider = userProvider;
    this.nav = nav;
  }
}

我预期的结果是,在初始化我的注册视图时,将注入UserProvider。因此,它的构造函数将运行,这将触发UserProvider构造函数中的http.get函数。然后,我应该在浏览器网络选项卡中看到一个网络调用。

但是,我得到了这个错误:

EXCEPTION: Error during instantiation of UserProvider! (SignupPage -> UserProvider)

app.bundle.js:33693 TypeError: http.get(...).toRx is not a function
    at new UserProvider (app.bundle.js:60706)

为什么http。收到toRx()是否导致错误?我最初是这样做的:

http.get('www.someURL.com').then(() => {
            console.log('test');
        });

但这也带来了类似的错误。

共有1个答案

沈乐邦
2023-03-14

在angular2-beta0http中。get()已经返回了一个可观察的,您不需要调用它以前的。toRx()方法,您可以直接调用map()等等。

 类似资料:
  • 我有两个组件:AppComponent和ApiComponent。我想在ApiComponent和注入了ApiComponent的对象中使用由AppComponent提供的依赖项。因此,我将ApiComponent视为AppComponent的子组件。我已经声明为中的依赖项,使用指令: 以下是我的AppComponent: 我的API模块的相关部分如下所示: 我在IntentService 1的o

  • 我有一个实现,其中父组件希望通过使用子组件上可用的< code>@Input参数将某些数据传递给子组件。然而,这种数据传输是可选的,父节点可能会也可能不会按照要求传递它。一个组件中可以有可选的输入参数吗?我在下面描述了一个场景:

  • 我想创建一个具有不需要值的属性的组件。例如,而不是像这样的东西:(我现在有) 或 我宁愿有: 因此组件本身必须查看属性editMode是否存在。当我有很多这样的属性时,这个看起来会干净很多。我没有看到任何关于如何做到这一点的文档。可行吗?

  • 问题内容: 我有服务: 但是当我打电话时,我无法访问和获得。因此,对我而言,逻辑上的步骤是为save()提供,因此我还必须将其提供/注入到。因此,如果我这样做: 我收到以下错误: 错误:[$ injector:unpr]未知提供程序:$ scopeProvider <-$ scope <-StudentService 错误中的链接(哇,很干净!)让我知道它与注入器相关,并且可能与js文件的声明顺序

  • 我正在尝试为我的navControl ler提供匕首柄。但是我使用的方法不起作用。我想提供navControl ler以便通过构造函数注入将其注入我的片段中。 我还创建了FragmentWorks类,以便通过构造函数注入我的依赖项。我知道是这里的问题,但我不知道正确的解决方案… 感谢您的帮助,谢谢! 原因:java.lang.ClassCastException:com.example.app。应

  • 我有一个带有的组件和一个方法。 登录完成后,如何更新组件并再次执行Ngonit方法? 服务: