2017-05-05 3 views
2

URL을 통해 특정 제품의 ID를 검색하고 싶습니다. 이건 내 지금까지 코드 : 모자 editor.component이 ngOnInitURL 2/ASP.NET 코어 검색 ID (URL)

constructor(
     private _hatListService: HatListService, private _router: Router, private _params: ActivatedRoute) { 

    } 

수입

//Imports from @Angular 
import { Component, OnInit } from '@angular/core'; 
import { RouterModule, Router, Params, RouterLink, ActivatedRoute } from '@angular/router'; 
import { Http } from '@angular/http'; 

생성자

ngOnInit() { 

      this._params.params.subscribe((params: Params) => { 
     var id = params['id'] * 1;//*1 efter det som man vill parse:s so bilr det som int.parse 

     this._hatListService.getHat(this.id).subscribe(

      foundHats => this.thisHatModel = foundHats); 
     console.log(this.thisHatModel) 
    }); 

} 

서비스

public _getHatById: string = '/api/Hats/GetHatById'; 

     getHat(id: number): Observable<Hat> { 
      //debugger 
      return this._http.get(this._getHatById + '/' + id).map(res => <Hat>res.json()).catch(this.handleError); 


     } 

컨트롤러

내가 URL이 생산되는 각 제품 위에 마우스를 올려
// GET: api/Hats/5 
    [HttpGet("GetHatById/{id}")] 
    public async Task<IActionResult> GetHat([FromRoute] int id) 
    { 
     if (!ModelState.IsValid) 
     { 
      return BadRequest(ModelState); 
     } 

     var hat = await _context.Hat.SingleOrDefaultAsync(m => m.Id == id); 

     if (hat == null) 
     { 
      return NotFound(); 
     } 

     return Ok(hat); 
    } 

:

enter image description here

,

하지만 제품을 클릭하면 ID가 브라우저에서 잡은되지 않습니다

enter image description here

콘트롤 :

enter image description here

내가 오류를 추측하고하는 것은 (내 getHat에서이 라인에서 발생) 방법. * 표시 한 숫자로 ID를 주조를위한 것입니다

>  this._params.params.subscribe((params: Params) => { 
      var id = params['id'] * 1; 

     }); 

내가 Angualr.io의 exapmlpe을 시도했지만 나를 위해 일을 가져올 수 없습니다. 고맙습니다

답변

1

해결 모든 도움 그것은이 변경 :

VAR 아이디의 PARAMS = [ 'ID'] * 1;

에 :

공공 ID : 어떤;

this.id = params [ 'id'] * 1;

.