如果没有内容,是否可以在角度路由器历史记录中添加页面?

时间:2018-08-27 15:52:55

标签: angular-router ionic4

我正在使用离子4,它使用角形铣刀。在某些情况下,用户可以单击类别并导航到类别页面。在类别页面上,显示了一个后退按钮,它将使用户返回首页。但是,如果用户重新加载页面,则不会再显示“后退”按钮,因为历史记录没有其他页面可返回。我想检测这种情况并将主页添加到历史记录中,以便用户可以选择返回。这可能吗?有指针吗?

1 个答案:

答案 0 :(得分:0)

请记住,angular只是基于javascript构建的框架,也许有一种有角度的方式可以做到这一点。在javascript中,每次浏览器进入页面或区域时,我都会检查一下history对象,以了解其堆栈中是否有任何元素。像这样:

var numberOfEntries = window.history.length;

如果其长度为零,则可以使用新的API pushState来操纵浏览器的历史记录。

Angular可以完成同样的事情,正如其文档中所述:

  

Angular Router(“路由器”)从此模型中借用。它可以   将浏览器网址解释为导航到   客户端生成的视图。它可以将可选参数传递给   支持视图的组件,可帮助决定哪些特定内容   礼物。

Angular router docs

我知道,学习angular api中的所有特征有点麻烦,但是您最好了解所有这些知识。但是由于我认为您有点着急,所以我可以告诉您最快的方法是在ionicPage对象中使用defaultHistory属性:

  

可以使用应用程序中任何位置的深层链接导航到页面,   但有时该应用是通过URL启动的,因此页面需要   具有与从内部导航到相同的历史记录   应用程序。

和...

  

仅当历史不存在时才使用此历史   ...

我在当前工作中正在开发的应用程序中做了类似的事情,但是它是用ionic 1和angularjs开发的(我没有投票赞成他们将使用哪个应用程序),所以我不能真的告诉您我们所做的工作是否对您有用。但是,请阅读有关最新离子版本的文档,我认为您可以使用该特定属性来完成此操作:

IonicPage

您可以尝试一下,告诉我它是如何进行的。

顺便说一句,我们使用$ ionicHistory,$ state,$ stateProvider和方法$ state.go()来操纵所有这些,但是就像我告诉你的那样,我使用了ionic 1和angularjs。

祝你好运!

相关问题