gpt4 book ai didi

javascript - Ionic 2 - 导入/注入(inject) Angular 2 HTTP 组件

转载 作者:行者123 更新时间:2023-12-02 15:14:30 29 4
gpt4 key购买 nike

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

在我的 app.js 文件中,我像这样定义我的组件:

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

然后,我的 user-provider.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 文件初始化“注册” View :

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;
}
}

我的预期结果是在初始化我的注册 View 时,将注入(inject)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.get.toRx()会导致错误?我最初尝试过这样的 promise :

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

但这会引发类似的错误。

最佳答案

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

关于javascript - Ionic 2 - 导入/注入(inject) Angular 2 HTTP 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34583659/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com