становится пустым {} вместо id - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь выполнить операцию обновления в Angular.Когда я отправляю после обновления, он показывает случайное число в конце API вместо определенного идентификационного номера.URL-адрес запроса выглядит следующим образом:

URL-адрес запроса : http://localhost:4200/api/auth/role/%7B%7D/

Вместо него должна быть http://localhost:4200/api/auth/role/1/

служба.ts

edit_role(param:any):Observable<any>{
    let body = JSON.stringify(param);
    console.log(body);
    var headers = new HttpHeaders().set('Authorization', 'Token ' + localStorage.getItem('usertoken'));
    var options =  {
        headers: headers
    };
    return this.httpClient.put('api/auth/role/' + body, options)
    .map(success => success)
    .catch(this.handleErrorObservable);
}

на консоли отображается пустой {}

component.ts

editRole(id){
    let editrole: any = {};
    editrole['name'] = this.Editrole.name;
    console.log(editrole);
    let roleid:number;
    roleid = this.Editrole.id;
    this.Authentication.edit_role(editrole).subscribe(res => {
        console.log('edited succesfully'); 
    });
}

Консоль показывает {name:undefined}

HTML

<form> <div class="form-group" *ngIf="roles">
    <label for="text">Role:</label> 
    <input type="text" class="form-control"[(ngModel)]="roles.name" id="text" name="role" #role>
</div> 
<button type="submit" class="btn btn-primary" (click)="editRole(role)">Submit</button> </form>

1 Ответ

0 голосов
/ 09 октября 2018

в компоненте, вы должны изменить его следующим образом

//class variable
editrole: any;

//in constructor
this.editrole={};

//in function
this.editrole={
     name: this.roles.name,
     id: this.roles.id
}

this.Authentication.edit_role(this.editrole).subscribe(res => {
    console.log('edited succesfully'); 
});

в служебном файле

 let body = param;
return this.httpClient.put('api/auth/role/' + body.id, body ,options)
...