【问题标题】:Hashbang defaulting in angular applicationHashbang在角度应用程序中的默认值
【发布时间】:2017-06-03 16:52:31
【问题描述】:

最新版本的 angular/angular-route 1.6.1 是否默认使用 hashbang?以这段代码为例,我必须使用#!链接到部分时,因为 #/ 或 #/partial2 不起作用。我认为您必须设置一个哈希前缀,但看起来它默认为该行为:

<!DOCTYPE html>
<html ng-app='myApp'>
  <head>
  <title></title>
  <script src="bower_components/angular/angular.min.js"></script>
  <script src="bower_components/angular-route/angular-route.js"</script>

  <script>

    var myApp = angular.module('myApp', ['ngRoute']);
    myApp.config(function ($routeProvider) {
      $routeProvider
        .when('/',{
            templateUrl: 'partials/view1.html',
        })
        .when('/partial2',{
            templateUrl: 'partials/view2.html'
        })
        .otherwise({
          redirectTo: '/'
        });
    });

    myApp.controller('view1Controller', function ($scope) {
      $scope.sports = ['golf', 'basketball', 'hockey', 'tennis',    'football'];
    });
    myApp.controller('view2Controller', function ($scope) {
      $scope.message = 'We are using another controller';
    });
  </script>
</head>

<body>
  <div ng-app='myApp'>
    <a href="#!/">Partial 1</a> | <a href="#!/partial2">Partial 2</a>
    <div ng-view="">
    </div>
</div>
</body>
</html>

【问题讨论】:

  • 你可以使用 $locationProvider.html5Mode(true);在配置中处理禁用和启用 hashbang 为 true/false
  • @VinodLouis 是对的。 html5Mode 会处理 hashBang
  • @VinodLouis 谢谢,我知道这是真的。但我记得 hashbang 必须通过 html5Mode(true) 启用,但实际上,没有 html5Mode(true),它已经启用。只是想知道它何时成为默认设置。

标签: javascript angularjs routing angular-routing hashbang


【解决方案1】:

从 Angular 1.6.0 开始,#!/ 成为路由中的默认值。在 #/ 工作之前,我基本上会降低版本,即 1.5.11。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    • 2017-02-14
    • 1970-01-01
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多