Angular2.1无法读取属性' get'未定义的

时间:2016-11-24 12:55:19

标签: http angular

所以,我目前正在尝试发送HTTP请求,我正在完成与official guide完全相同的一切,并且它无法正常工作(与往常一样,当您与Angular2达成交易时)

这是我的app.module

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouterModule, Routes }   from '@angular/router';
import { HttpModule, JsonpModule } from '@angular/http';
import { AppComponent }   from './app.component';
import { PageComponent } from './modules/Affiliate/affiliate.component';
import { NotFoundComponent }   from './not-found.component';


const routes: Routes =
    [
        { path: 'page', component: PageComponent },
        { path: '404', component: NotFoundComponent },
        { path: '**', redirectTo: '404' }
    ];

@NgModule({
    imports: [
        BrowserModule,
        RouterModule.forRoot(routes),
        HttpModule,
        JsonpModule
    ],
    declarations: [
        AppComponent,
    ],
    bootstrap: [ AppComponent ]
})

export class AppModule { }

这是我的服务,我试图发送http请求

import { Injectable } from '@angular/core';
import { Headers, Http } from '@angular/http';
import 'rxjs/add/operator/toPromise';

@Injectable()
export class GridService {
    constructor(private http: Http) { }

    getTableRaws(url): Promise<any> {
            return this.http.get(url)
                .toPromise()
                .then(response => response.json().data as any)
                .catch(this.handleError);
    }

    private handleError(error: any): Promise<any> {
        console.error('An error occurred', error);
        return Promise.reject(error.message || error);
    }
}

请提出任何想法

2 个答案:

答案 0 :(得分:1)

按照文档,我猜你错过了url param的数据类型:

getTableRaws(url: string): Promise<any> {
...
}

更新

您需要在GridService中添加app.module作为提供者。请参阅this SO answer

如果您已进行了这些更改,请更新问题中的代码,并在此处提供app.component的内容。

答案 1 :(得分:0)

以下是适合我的解决方案:

[self.mapView addAnnotation:item.placemark];