繁体   English   中英

角ui路由器后退按钮问题

[英]angular ui router back button issue

'use strict';

angular.module('cbApp')
  .config(function ($stateProvider) {
    $stateProvider
      .state('search', {
        url: '/college/search',
        templateUrl: 'app/collegesearch/views/collegesearch.html',
        controller: 'collegeSearchCtrl'
      })

      .state('searchCollegeFilter', {
        url: '/college/search/:streamId?cities&courses&branches&ordering',
        templateUrl: 'app/collegesearch/views/collegesearch.html',
        controller: 'collegeSearchCtrl'
      });

  });

在这里,我的应用程序使用网址/ college / search调用第一状态,即“搜索”。 在控制器内部,我转换到另一个状态searchCollegeFilter。 我想做的是,当用户单击浏览器的“后退”按钮时,将用户导航回到他们来自的后方。 说他们来自“ /”,我希望他们回到主页。 但是在浏览器的历史记录中,有2个条目用于大学/搜索。 我希望这仅是第一次发生。

因为这个问题与angularjs有关,所以事情是您需要在浏览“ window.onhashchange”之前观看浏览器的后退事件。 通过观察可以检查并可以重定向默认页面

我在其他应用程序中所做的工作将达到目的:

基本上: 指定父状态

->然后逻辑变得容易了。

您不必详细说明历史记录或后退按钮或类似内容。

基本上:

->签入

  • $ rootScope。$ on(“ $ onstateChange”,...

->如果

  • fromState.parent等于State.parent
  • 然后$ window.history.replaceState({},“我的详细信息状态页”,$ state.url(toState)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM