繁体   English   中英

AngularJs $ locationProvider.html5Mode(true); 删除哈希到URL不起作用

[英]AngularJs $locationProvider.html5Mode(true); for remove Hash to URL not work

我的功能$ locationProvider.html5Mode(true)有问题,这是设置:

var app = angular.module("app", [
"ngRoute",
"ngAnimate"
]);


// ROUTE CONFIG
app.config(['$routeProvider','$locationProvider', function($routeProvider, $locationProvider){

$routeProvider.
    when("/archive", {
      templateUrl: "archive.php",
      controller: "archiveCtrl",
      animate: "slide-left"
    }).
    when("/single", {
      templateUrl: "single.php",
      controller: "singleCtrl",
      animate: "slide-left"
    }).
    otherwise({
      redirectTo: "/archive"
    });

$locationProvider.html5Mode(true);

});

在head标签中:

<head>
    <base href="/">
</head>

该网站的根是

site.com/main.php

其中main.php包含div ng-view

知道为什么它不起作用吗?

这是我在JSFiddle上创建的一个工作示例,我删除了templateUrl并改用template,但是在这种情况下应该没关系(您正在询问html5mode和base如何工作)

html

<div ng-controller="mainCtrl">
  <a href="/single">single</a>
  <a href="/archive">archive</a>
  <div ng-view></div>
</div>

Java脚本

var app = angular.module("myApp", [
    "ngRoute"
  ])
  .config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
    $routeProvider
      .when("/archive", {
        template: "<p>archive</p>"
      })
      .when("/single", {
        template: "<p>single</p>"
      })
      .otherwise({
        redirectTo: "/archive"
      });

    $locationProvider.html5Mode(true);

  }])
  .controller("mainCtrl", function mainCtrl($scope, $location) {
    $scope.$location = $location;
  });

JSFiddle

暂无
暂无

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

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