所以,我目前正在尝试发送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);
}
}
请提出任何想法
答案 0 :(得分:1)
按照文档,我猜你错过了url
param的数据类型:
getTableRaws(url: string): Promise<any> {
...
}
您需要在GridService
中添加app.module
作为提供者。请参阅this SO answer。
如果您已进行了这些更改,请更新问题中的代码,并在此处提供app.component的内容。
答案 1 :(得分:0)
以下是适合我的解决方案:
[self.mapView addAnnotation:item.placemark];