Javascript Angular2[routerLink]构造失败
我通过建立一个小博客来学习angular2。 我将angular cli与typescript 2一起使用 我有个小问题。 当你在一个文章页面,我想要一个“上一篇”和“下一篇”的链接来访问其他文章 我的路径如下:article/:id/:slug 在我的类组件中:到目前为止我的代码(以及我的问题,下面的): 我的服务如下所示: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)
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"