html5history $ locationProvider不使用$ stateProvider

时间:2016-07-18 13:52:04

标签: angularjs angular-ui-router state yeoman-generator-angular

在我的应用中,我已经尝试按照我已经看过的所有博客帖子正确设置此内容,但我无法在/网址上加载该应用。我用自己的角度生成器构建了应用程序,因此它使用grunt来启动连接服务器。但是,由于尝试添加localhost:9000并将html5location设置为true,因此转到$locationProvider不再显示该应用。

angular.module('bidrAdminApp', ['sky','ui.router','ngSanitize'])
  .config(function ($stateProvider,$urlRouterProvider,$locationProvider) {
  $stateProvider
    .state('Home',{
      url: '',
      templateUrl: 'views/index.html',
      controller: 'ApplicationCtrl'
    })
    .state('Home.Events', {
      url: '/events',
      templateUrl: 'views/events/index.html',
      controller: 'EventsCtrl'
    })
    .state('Home.Event',{
      url: '/events/{eventId}',
      templateUrl: 'views/events/event/index.html',
      controller: 'EventCtrl'
    })
    .state('Home.Event.Overview',{
      parent: 'Home.Event',
      url: '/overview',
      templateUrl: 'views/events/event/overview.html',
    })
    .state('Home.Event.Settings',{
      parent: 'Home.Event',
      url: '/',
      templateUrl: 'views/events/event/settings.html',
    });
    $urlRouterProvider.otherwise('');
    $locationProvider.html5Mode(true);
});

我的基础index.html文件中也有<base href="/" />

如果我将Home状态更改为url: '/admin',则可以转到/admin,但这不是预期的结果。不确定我是否错过了配置。

1 个答案:

答案 0 :(得分:1)

更改此行:

$urlRouterProvider.otherwise('');

到这一行:

$urlRouterProvider.otherwise('/');