angular2 http:后抛出错误
我正在angular2中开发一个简单的CRUD应用程序,在发布到后端服务器时遇到问题。我的类代码如下angular2 http:后抛出错误,http,post,angular,Http,Post,Angular,我正在angular2中开发一个简单的CRUD应用程序,在发布到后端服务器时遇到问题。我的类代码如下 export class PersonForm { data:Object; loading: boolean; personForm: ControlGroup; http:Http; constructor(personFormBuilder: FormBuilder) { this.personForm = personFormBuilder.group({
export class PersonForm {
data:Object;
loading: boolean;
personForm: ControlGroup;
http:Http;
constructor(personFormBuilder: FormBuilder) {
this.personForm = personFormBuilder.group({
'name': [],
'age': []
});
}
onSubmit(value:any) : void {
console.log('you submitted these values: ', value);
this.http.post("http://localhost:3000/people/create",JSON.stringify(value))
.subscribe((res: Response) => {
this.data = res.json();
this.loading = true;
});
}
}
上述操作导致我的控制台出现以下错误。我不确定什么是未定义的,因为我遵循我找到的每个示例:
EXCEPTION: Error during evaluation of "ngSubmit"
ORIGINAL EXCEPTION: TypeError: undefined is not an object
(evaluating 'this.http.post')
这是我的导入,以防我缺少一个组件
import {Component } from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser';
import {CORE_DIRECTIVES,FORM_DIRECTIVES, FormBuilder} from 'angular2/common';
import {HTTP_PROVIDERS, Http, Response, Headers} from 'angular2/http';
import {ControlGroup} from "angular2/common";
您需要在组件构造函数中插入
http
对象:
import {Http} from 'angular2/http';
@Component({
(...)
})
export class PersonForm {
data:Object;
loading: boolean;
personForm: ControlGroup;
http:Http;
constructor(private http: Http, personFormBuilder: FormBuilder) {
(...)
}
}
希望它能帮助你,
Thierry您必须在构造函数中插入Http。
Http
应该在那里导入&您的类构造函数应该从中定义一个新对象。。否则它至少应该存在于父组件中。如果OP在父组件中注入了依赖项,则不能这样做吗?@Pankaj我在问题中看不到父组件;-)我猜PersonForm
是一个组件。一个Http
对象应该通过注入而不是作为组件的参数来提供……有意义,只要想一想:)+1