我有一个angular2应用程序,其中列出了许多项目,用户可以单击这些项目以获取有关该项目的更多详细信息。
现在,其中一些项目我实际上并没有详细说明 - 我在提出服务请求时会知道,因此我不想加载带有404或其他任何内容的页面,我只是不想让他走到那个页面。
我正在使用Resolve来加载项目,所以从理论上说它应该非常简单,但我无法弄清楚如何在某些条件下阻止路由更改。
我尝试使用>>> d=[[1,2,3],[1,2,3,4,5],[1,2],[1,2,3,4]]
>>> map(sum,d)
[6, 15, 3, 10]
>>> s=map(sum,d)
>>> s
[6, 15, 3, 10]
>>> max(s)
15
>>> s.index(max(s))
1
>>> d[s.index(max(s))]
[1, 2, 3, 4, 5]
,但这似乎根本不起作用。
Location.back
答案 0 :(得分:2)
是
if (article) {
return article;
}
else {
return Promise.reject('No articles');
// or throw ...
}
不需要Promise.resolve
。
答案 1 :(得分:0)
另一种防止导航的方法是从resolve流中抛出错误。参见https://stackoverflow.com/a/58010984/3936587