AngularJS $ routeProvider没有正确路由

时间:2017-09-06 09:33:55

标签: javascript angularjs html5mode

所以我是Angular的新手,并试图弄清楚多条路线如何导致相同的视图/ templateUrl和控制器。这是我写的:

angular
  .module('mwsApp', [
    'ngAnimate',
    'ngCookies',
    'ngResource',
    'ngRoute',
    'ngSanitize',
    'ngTouch',
    'ui.bootstrap'
  ])
  .config(function ($routeProvider, $locationProvider) {
    // debugger
    $routeProvider
      .when('/', {
        templateUrl: 'index.html',
        controller: 'MainCtrl as vm',
      })
      .when('/rika', {
        templateUrl: 'index.html',
        controller: 'MainCtrl as vm',
      })
      // .otherwise({
      //   redirectTo: '/'
      // });

      $locationProvider.html5Mode(true).hashPrefix("!");
  });

问题:目前,如果我去" localhost:9000 /"它显示了正确的版本,但如果我去了#34; localhost:9000 / rika"它让我"无法得到/ rika"。

调试:我已将问题缩小到html5Mode。我试图摆脱#! Angular会自动添加到URL上,但是当我这样做时,会弹出错误。

感谢任何人的投入!

1 个答案:

答案 0 :(得分:1)

您无法摆脱#中的local development,因此您需要对此行进行评论

$locationProvider.html5Mode(true).hashPrefix("!");

但当您使用某个server on production然后uncomment并使用它删除#

否则你将不会在reloads in local development

上收到错误