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