Я разработчик рельсов и новичок в angular.
Я работаю над angular в качестве переднего конца и рельсами в качестве бэкэнда.
Как и рельсы, я хочу перенаправить на страницу шоу после создания записи.
Ниже мой код (bm-biller-add.component.ts): -
import { Component, OnInit } from '@angular/core';
import { BmBiller } from '../bm_biller';
import { ApiService } from '../api.service';
import { Router, ActivatedRoute, Params } from '@angular/router';
@Component({
selector: 'app-bm-biller-add',
templateUrl: './bm-biller-add.component.html',
styleUrls: ['./bm-biller-add.component.css']
})
export class BmBillerAddComponent implements OnInit {
constructor(public apiService: ApiService, public acRoute: ActivatedRoute, public router: Router) { }
public bm_biller : BmBiller = new BmBiller();
ngOnInit() {
}
public onSubmit() {
this.apiService.post("bm_billers", this.bm_biller).subscribe((r)=>{
this.router.navigate(['/bm_billers/',r.id]);
});
}
}
Когда приложение angular запускается, оно выдает ошибку: -
ERROR in src/app/bm-biller-add/bm-biller-add.component.ts(25,46): error TS2339: Property 'id' does not exist on type 'Object'.
webpack: Failed to compile.
Какая ошибка в этой строке: -
this.router.navigate(['/bm_billers/',r.id]);
Правильно ли я делаю? Я пробовал проверить это r (response)! = Undefined, но он все равно выдает ошибку.
проблема устранена после изменения на r: any. спасибо user184994





Измените
subscribe((r)=>{наsubscribe((r: any)=>{, который сообщит компилятору, чтоrможет иметь любые свойства.