私は小さなブログを構築してangular2を学んでいます。 私はtypescript 2でangular-cliを使用しています。Angular2 [routerLink]の構築に失敗しました
小さなコンポーネントで問題が発生しました。 記事ページにいるときに、他の記事にアクセスするための "前の"リンクと "次のリンク"が必要です。
私のパスはこのように作られています:記事/: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は、サービスが正常に動作しますが...
MY問題です:
私は私のthis.getUrlParams()ngOnInit(中メソッドを呼び出す)、[routerLink]私のテンプレートにエラーが表示されます。オブジェクトが見つかりません。
[routerLink]="['/article', nextArticle.id, nextArticle.slug]
しかし、メソッドをクラスコンストラクタに移動すると、そのメソッドが動作します。私はこれを行う良い練習ではないことを知っている、私はngOnInit()ですべてを移動することを好むだろう
どのようにこれを行うにはどのようなアイデア?
*ngIf="nextArticle" [routerLink]="['/article', nextArticle.id, nextArticle.slug]"
それはレンダリングの前に、データを待ちます:)おかげギュンター
:html要素に追加:私は
SOLUTION
が...今失われたビットです
ありがとう!私はすでに試してみましたが、ページに何も表示されませんでした。 – KCarnaille
「何もない」とはどういう意味なのでしょうか。 routerLinkを持つ要素だけが表示されず、 'nextArticle'がまだ利用できない間だけ表示されます。私は別のアプローチで私の答えを更新します。 –
さて、あまりにも速いと私は答えて申し訳ありません。何らかの理由で、あなたのソリューションは実際に動作します。私は昨日それを試して、うまくいきませんでした...私はそれが誤ったLOLだったと思います。再度、感謝します ! – KCarnaille