【问题标题】:angular ui router back button issue角度ui路由器后退按钮问题
【发布时间】:2016-06-06 14:04:33
【问题描述】:
'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'
      });

  });

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

【问题讨论】:

标签: javascript angularjs angular-ui-router browser-history


【解决方案1】:

因为这个北移是用 angularjs 做的,问题是你需要在导航“window.onhashchange”之前观察浏览器返回事件。通过观察你可以让你检查并可以重定向默认页面

【讨论】:

    【解决方案2】:

    我在不同的应用程序中所做的事情将达到目的:

    基本上:指定父状态

    -> 那么逻辑就变得简单了。

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

    基本上:

    -> 签到

    • $rootScope.$on("$onstateChange", ...

    -> 如果

    • fromState.parent 等于 toState.parent
    • 然后$window.history.replaceState({}, "My Detail State Page", $state.url(toState)

    【讨论】:

      猜你喜欢
      • 2019-03-15
      • 1970-01-01
      • 2014-11-10
      • 1970-01-01
      • 2020-10-29
      • 1970-01-01
      • 2015-07-15
      • 2013-01-14
      • 1970-01-01
      相关资源
      最近更新 更多