Javascript Angular2[routerLink]构造失败

Javascript Angular2[routerLink]构造失败,javascript,angular,typescript2.0,Javascript,Angular,Typescript2.0,我通过建立一个小博客来学习angular2。 我将angular cli与typescript 2一起使用 我有个小问题。 当你在一个文章页面,我想要一个“上一篇”和“下一篇”的链接来访问其他文章 我的路径如下:article/:id/:slug 在我的类组件中:到目前为止我的代码(以及我的问题,下面的): 我的服务如下所示: getArticles() { return this.http.get('my_api_link').map( (res: Response)

我通过建立一个小博客来学习angular2。 我将angular cli与typescript 2一起使用

我有个小问题。 当你在一个文章页面,我想要一个“上一篇”和“下一篇”的链接来访问其他文章

我的路径如下:article/:id/:slug

在我的类组件中:到目前为止我的代码(以及我的问题,下面的):

我的服务如下所示:

getArticles() {
    return this.http.get('my_api_link').map(
        (res: Response) => res.json()
    );
}
我得到了我的数据,服务正常,但是

我的问题:

ngOnInit()中调用我的this.getUrlParams()方法时,模板中的[routerLink]显示错误。找不到该对象

[routerLink]="['/article', nextArticle.id, nextArticle.slug]
但是当我将我的方法移动到类构造函数中时,它就工作了。我知道这不是一个很好的做法,我更喜欢移动ngOnInit()中的所有内容

有什么办法吗?我现在有点迷路了

解决方案:

在html元素上添加:

*ngIf="nextArticle" [routerLink]="['/article', nextArticle.id, nextArticle.slug]"

它将在渲染之前等待数据:)感谢Gunter

您可以添加一个
*ngIf
,以防止在
nextArticle
可用之前创建
routerLink

*ngIf="nextArticle" [routerLink]="['/article', nextArticle.id, nextArticle.slug]"


谢谢你的回答!我已经试过了,但是页面上什么也没有显示……不知道你说的“什么都没有”是什么意思。只有带有routerLink的元素才会显示,并且只有在
nextArticle
不可用时才会显示。我将用另一种方法更新我的答案。很抱歉,我回答得有点太快了。不管出于什么原因,您的解决方案实际上是有效的。我昨天试过了,没用。。。我认为这是一个错误的销售LOL。再次感谢!不客气。很高兴听到你能成功:)
*ngIf="nextArticle" [routerLink]="['/article', nextArticle.id, nextArticle.slug]"
[routerLink]="nextArticle ? ['/article', nextArticle.id, nextArticle.slug] : null"