Я использую 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;
}))
добавьте немного кода. ваша служба может ожидать некоторые аргументы, но вы не предоставляете их при вызове
Согласно информации, которую вы предоставили до сих пор, вы дали где-то в своем коде аргумент методу, который его не принимает.
@AdritaSharma ты можешь помочь
@AmeerPappay я использую аргументы
Вы можете опубликовать приложение Service.create Код пользователя. возможно, вы забыли аргумент в этой функции.
@DimuthuMaduranga У вас должен быть параметр в определении функции. В вашем app.service.ts у createUser()
должен быть аргумент, который относится к вашему submitData
В коде createUser(), который вы упомянули, вы возвращаете response.data, который не является типом Observable. Если вы возвращаете тип Observable из службы, вы не должны использовать Pipe там. Просто напишите: верните this.http.post(this.basePath + '/user-groups', {headers}) А также учтите передаваемый аргумент, поэтому функция должна быть определена как createUser(data)
В упомянутом кодексе много ошибок. Я укажу их в соответствии с релевантностью. 1.Переданный аргумент Должен быть определен в функции createUser. 2. Вы только устанавливаете заголовок и не передаете никаких данных в запросе POST, который является вашей основной целью. 3. Вы не должны возвращать response.data, а просто возвращать вывод метода POST, поскольку тип возврата createUser — Observable.
Таким образом, правильный способ написания кода должен быть:
createUser (данные: любой): наблюдаемый {
const headers = new HttpHeaders().set('токен безопасности', localStorage.getItem('loginToken'));
вернуть this.http.post(this.basePath + '/user-groups', данные, {заголовки: заголовки}) }
Попробуйте так:
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.info(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 })
}
Добавьте немного кода, чтобы сообщество могло вам помочь