Angular 2 post 方法给出打字稿错误
Angular 2 post method gives typescript error
我正在使用 Angular 2 并且我通过服务与 API 交互。
我有一个要用于发布到 API 的方法。
ERROR in src/app/application/users/create-new-user/create-new-user.component.ts(146,5): error TS2554: Expected 0 arguments, but got 1.
user.ts code
var submitData =
{
first_name: formData.firstName,
last_name: formData.lastName,
email: formData.email,
password: formData.password,
address_1: formData.address1,
address_2: formData.address2,}
his.appService.createUser(submitData).subscribe((result: any) => {
if (result != '') {
appservice.ts
createUser(): Observable<any> {
const headers = new HttpHeaders()
.set('security-token', localStorage.getItem('loginToken'));
return this.http.post<any>(this.basePath + '/user-groups', { headers })
.pipe(
map((response => {
return response.data;
}))
提到的代码中有很多错误。我会根据相关性指出它们。
1.Argument 通过 必须在 createUser 函数中定义。
2.You 仅设置 header 而未在 POST 请求中传递任何数据,这是您的主要目的。
3. 您不能 return response.data 而只是 POST 方法的 return 输出,因为 return 类型的 createUser 是 Observable 。
所以正确的代码编写方式必须是:
</p>
<p>createUser(data:any): 可观察的{</p>
<p>const headers = new HttpHeaders().set('security-token', localStorage.getItem('loginToken'));</p>
<p>return this.http.post(this.basePath + '/user-groups', 数据, {headers: headers})
}</p>
<p>
这样试试:
user.ts
submitData() {
var submitData =
{
first_name: formData.firstName,
last_name: formData.lastName,
email: formData.email,
password: formData.password,
address_1: formData.address1,
address_2: formData.address2,
}
this.appService.createUser(submitData).subscribe((result: any) => {
if (result != '') {
console.log(result)
}
})
}
appservice.ts
createUser(data:any): Observable<any> {
let headers = new HttpHeaders();
headers = headers.set('security-token', localStorage.getItem('loginToken'));
return this.http.post(this.basePath + '/user-groups', data, { headers })
}
我正在使用 Angular 2 并且我通过服务与 API 交互。
我有一个要用于发布到 API 的方法。
ERROR in src/app/application/users/create-new-user/create-new-user.component.ts(146,5): error TS2554: Expected 0 arguments, but got 1.
user.ts code
var submitData =
{
first_name: formData.firstName,
last_name: formData.lastName,
email: formData.email,
password: formData.password,
address_1: formData.address1,
address_2: formData.address2,}
his.appService.createUser(submitData).subscribe((result: any) => {
if (result != '') {
appservice.ts
createUser(): Observable<any> {
const headers = new HttpHeaders()
.set('security-token', localStorage.getItem('loginToken'));
return this.http.post<any>(this.basePath + '/user-groups', { headers })
.pipe(
map((response => {
return response.data;
}))
提到的代码中有很多错误。我会根据相关性指出它们。 1.Argument 通过 必须在 createUser 函数中定义。 2.You 仅设置 header 而未在 POST 请求中传递任何数据,这是您的主要目的。 3. 您不能 return response.data 而只是 POST 方法的 return 输出,因为 return 类型的 createUser 是 Observable 。
所以正确的代码编写方式必须是:
</p>
<p>createUser(data:any): 可观察的{</p>
<p>const headers = new HttpHeaders().set('security-token', localStorage.getItem('loginToken'));</p>
<p>return this.http.post(this.basePath + '/user-groups', 数据, {headers: headers})
}</p>
<p>
这样试试:
user.ts
submitData() {
var submitData =
{
first_name: formData.firstName,
last_name: formData.lastName,
email: formData.email,
password: formData.password,
address_1: formData.address1,
address_2: formData.address2,
}
this.appService.createUser(submitData).subscribe((result: any) => {
if (result != '') {
console.log(result)
}
})
}
appservice.ts
createUser(data:any): Observable<any> {
let headers = new HttpHeaders();
headers = headers.set('security-token', localStorage.getItem('loginToken'));
return this.http.post(this.basePath + '/user-groups', data, { headers })
}