繁体   English   中英

Angular JS从URL中删除哈希不起作用

[英]Angular JS remove hash from URL not working

我试图摆脱看起来像http://example.com/#/album/0的网址,而让它看起来更像http://example.com/album/0

我有以下代码

(function() {
var app = angular.module('chp', ['ngRoute', 'projectControllers']);

app.config(['$routeProvider', '$locationProvider',
  function($routeProvider, $locationProvider) {
    $routeProvider.
      when('/', {
        templateUrl: 'partials/directory.html',
        controller: 'ProjectsCtrl'
      }).
      when('/album/:id', {
        templateUrl: 'partials/album.html',
        controller: 'ProjectDetailCtrl'
      }).
      otherwise({
        redirectTo: '/'
      });

      $locationProvider.html5Mode(true);
  }]);

var projectControllers = angular.module('projectControllers', []);

projectControllers.controller('ProjectsCtrl', ['$scope', '$http',
  function ($scope, $http) {
    $scope.projects = albums;
    $scope.filters = { };
  }]);

projectControllers.controller('ProjectDetailCtrl', ['$scope', '$routeParams', '$sce',
  function($scope, $routeParams, $sce) {
    $scope.project = albums[$routeParams.id];
})();

但这一旦我在所示的三个位置添加$ locationProvider,便导致我的应用完全中断。 关于为什么这对我不起作用的任何想法吗? 我也在jquery和angular.js之后添加了angular-route.js,所以不能成为问题

乍一看对我来说还不错,但您必须确保将服务器设置为可以为任何路由提供http://example.com/index.html ,否则它将尝试加载http://example.com/album/0/index.html然后再引导您的角度应用程序。 启用html5后会看到什么? 404找不到? 控制台错误?

您可能还需要在index.html文件的<head></head>内添加<base href="/" />

暂无
暂无

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

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