Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Angular 2 RC 5 Bootstrap自定义HTTP类TypeError:无法读取属性’toString’为null大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在Angular 2 RC 4中,我有一个httpLoading扩展了Angular 2的原始http服务.

使用RC 4,我可以在bootstrap中使用它,没有任何问题使用下面的代码

bootstrap(AppComponent,[
    http_PROVIDERS,provide(requestOptions,{ useClass: DefaultrequestOptions }),provide(http,{
        useFactory: (BACkend: XHRBACkend,defaultOptions: requestOptions) => new httpLoading(BACkend,defaultOptions),deps: [XHRBACkend,requestOptions]
    })
]).catch(err => console.error(err));

我的Defaultrequest选项类

import { Injectable } from '@angular/core';
import { Headers,BaserequestOptions } from '@angular/http';

@Injectable()
export class DefaultrequestOptions extends BaserequestOptions {
    headers: Headers = new Headers({
        'Content-Type': 'application/json'
    });
}

我的httpLoading类看起来像这样

import { http,requestOptionsArgs,ConnectionBACkend,requestOptions,Response } from '@angular/http'
import { Injectable } from '@angular/core'
import {GlobalservicE} from './globalservice';
import { Observable } from 'rxjs/Observable';

export class httpLoading extends http {

    constructor(BACkend: ConnectionBACkend,defaultOptions: requestOptions,private _globalservice: GlobalservicE) {
        super(BACkend,defaultOptions);
    }

    get(url: String,options?: requestOptionsArgs): Observable<any> {
        this._globalservice.isLoading = true;
        return super.get(url,options)
            .map(res => {
                this._globalservice.isLoading = false;
                return res.json();
            })
            .catch(this.handleError);
    }
}

使用角度2 RC 5,引导方式已经改变,我们现在需要有NgModule和bootstrap.我已经遵循迁移指南,并在NgModule下创建了我:

import { NgModule }       from '@angular/core';
import { BrowserModule  } from '@angular/platform-browser';
import { FormsModule,ReactiveFormsModule }   from '@angular/forms';
import { httpR_457_11845@odule }     from '@angular/http';
import { http,http_PROVIDERS,XHRBACkend } from '@angular/http';

import { DefaultrequestOptions } from './DefaultrequestOptions';
import { httpLoading } from './http-loading';

import { routIng }        from './app.routIng';
import { AppComponent } from './components/app.component';


@NgModule({
    imports: [
        BrowserModule,FormsModule,ReactiveFormsModule,httpR_457_11845@odule,routIng
    ],declarations: [
        AppComponent
    ],providers: [
        http_PROVIDERS,{ provide: requestOptions,useClass: DefaultrequestOptions },{
            provide: http,useFactory: (BACkend: XHRBACkend,globalservice: GlobalservicE) => new httpLoading(BACkend,defaultOptions,globalservicE),Globalservice]
        },Globalservice
    ],bootstrap: [AppComponent],})
export class AppModule { }

但是现在当我在组件中使用它时,它没有向服务器发送任何请求,并且在控制台中通过以下错误

EXCEPTION: Error: Uncaught (in promisE): TypeError: CAnnot read property 'toString' of null

我使用http的组件如下:

import { Component,OnInit } from '@angular/core';
import { http } from '@angular/http';

@Component({
    templateUrl: '../../templates/home/home.html'
})
export class HomeComponent implements OnInit {

    constructor(private http: http) {}

    ngOnInit() {
        this.http.get('/home')
            .subscribe((data) => {

            });
    }
}

有人可以引导吗?

我找到了解决方here.我有同样的问题,它为我工作.

只需在get选项中添加一个body:

this.http.get(url,{ body: "" });

我希望它也适合你

大佬总结

以上是大佬教程为你收集整理的Angular 2 RC 5 Bootstrap自定义HTTP类TypeError:无法读取属性’toString’为null全部内容,希望文章能够帮你解决Angular 2 RC 5 Bootstrap自定义HTTP类TypeError:无法读取属性’toString’为null所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。