首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >离子2-导入/注入角2 HTTP组件

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

Stack Overflow用户
提问于 2016-01-04 01:40:01
回答 1查看 2.2K关注 0票数 0

我有一个离子2应用程序,我一直在测试使用本地数据。现在,我尝试向api发出一些Ajax请求以获取数据。

在我的app.js文件中,我定义我的组件如下:

代码语言:javascript
复制
import {UserProvider} from './providers/user-provider';
...
    @App({
      templateUrl: 'build/app.html',
      providers: [UserProvider]
    })

然后,我的user-provider.js文件定义如下:

代码语言:javascript
复制
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文件初始化我的“注册”视图:

代码语言:javascript
复制
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的构造函数中触发UserProvider函数。然后,我应该在浏览器网络选项卡中看到一个网络调用。

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

代码语言:javascript
复制
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.get.toRx()会导致错误?我最初尝试过这样的承诺:

代码语言:javascript
复制
http.get('www.someURL.com').then(() => {
            console.log('test');
        });

但这也引发了类似的错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-04 02:40:52

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34583659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档