저는 작은 블로그를 작성하여 angular2를 배우고 있습니다. angularci를 typescript 2와 함께 사용합니다.Angular2 [routerLink] construction fail
작은 구성 요소에 문제가 있습니다. 기사 페이지에있을 때 "이전"및 "다음"링크를 통해 다른 기사에 액세스하고 싶습니다. ( 아래 내 문제와) 내 코드 지금까지 : 내 수업 구성 요소 내에서 슬러그
: 기사/: ID/
내 경로는 다음과 같이 만들어
getUrlParams() {
this.activatedRoute.params.subscribe((param) => {
this.loadPrevArticle(param);
})
}
loadPrevArticle(param){
let id = Number(param['id']); // Converts the original string to number
return this.myService.getArticles().subscribe((data) => {
// some stuffs to get the article object I want, actually working :)
});
}
내 서비스는 다음과 같습니다 : 내 D를 가지고
getArticles() {
return this.http.get('my_api_link').map(
(res: Response) => res.json()
);
}
ATAS, 서비스는 ... 제대로 작동되지만 내 문제 :
내 this.getUrlParams()는 ngOnInit()에서 메소드를 호출합니다 [routerLink] 내 템플릿에 오류가 표시됩니다. 개체를 찾을 수 없습니다.
[routerLink]="['/article', nextArticle.id, nextArticle.slug]
하지만 내 메서드를 클래스 생성자로 옮기면 작동합니다. 나는 이것이 좋은 연습이 아니라는 것을 안다. 나는 ngOnInit()에서 모든 것을 옮기고 싶다.
어떻게하면 좋을까?
*ngIf="nextArticle" [routerLink]="['/article', nextArticle.id, nextArticle.slug]"
그것은 렌더링하기 전에 데이터를 기다립니다 :) 감사 군터
:html 요소에 추가 : 나는
솔루션
이 ... 지금 손실 조금 있어요
감사합니다! 나는 이미 시도했지만 아무 것도 페이지에 표시하지 않습니다 ... – KCarnaille
"nothing"으로 무엇을 의미하는지 확실하지 않습니다. routerLink가있는 요소 만'nextArticle'을 아직 사용할 수없는 동안에 만 표시됩니다. 대체 방법으로 내 대답을 업데이트하겠습니다. –
글쎄, 너무 빨리 대답해서 미안해. 어떤 이유로 든 솔루션이 실제로 작동합니다. 나는 어제 그것을 시도하고 작동하지 않았다 ... 나는 그것이 잘못 철자 한 LOL이었다고 생각한다. 다시 한 번 감사드립니다! – KCarnaille