我正在使用离子4,它使用角形铣刀。在某些情况下,用户可以单击类别并导航到类别页面。在类别页面上,显示了一个后退按钮,它将使用户返回首页。但是,如果用户重新加载页面,则不会再显示“后退”按钮,因为历史记录没有其他页面可返回。我想检测这种情况并将主页添加到历史记录中,以便用户可以选择返回。这可能吗?有指针吗?
答案 0 :(得分:0)
请记住,angular只是基于javascript构建的框架,也许有一种有角度的方式可以做到这一点。在javascript中,每次浏览器进入页面或区域时,我都会检查一下history对象,以了解其堆栈中是否有任何元素。像这样:
var numberOfEntries = window.history.length;
如果其长度为零,则可以使用新的API pushState
来操纵浏览器的历史记录。
Angular可以完成同样的事情,正如其文档中所述:
Angular Router(“路由器”)从此模型中借用。它可以 将浏览器网址解释为导航到 客户端生成的视图。它可以将可选参数传递给 支持视图的组件,可帮助决定哪些特定内容 礼物。
我知道,学习angular api中的所有特征有点麻烦,但是您最好了解所有这些知识。但是由于我认为您有点着急,所以我可以告诉您最快的方法是在ionicPage对象中使用defaultHistory属性:
可以使用应用程序中任何位置的深层链接导航到页面, 但有时该应用是通过URL启动的,因此页面需要 具有与从内部导航到相同的历史记录 应用程序。
和...
仅当历史不存在时才使用此历史 ...
我在当前工作中正在开发的应用程序中做了类似的事情,但是它是用ionic 1和angularjs开发的(我没有投票赞成他们将使用哪个应用程序),所以我不能真的告诉您我们所做的工作是否对您有用。但是,请阅读有关最新离子版本的文档,我认为您可以使用该特定属性来完成此操作:
您可以尝试一下,告诉我它是如何进行的。
顺便说一句,我们使用$ ionicHistory,$ state,$ stateProvider和方法$ state.go()来操纵所有这些,但是就像我告诉你的那样,我使用了ionic 1和angularjs。
祝你好运!