AngularUI路由器 - 无法通过URL

时间:2016-04-07 23:31:45

标签: javascript angularjs angular-ui-router

因此AngularUI路由器出现问题。我遇到的问题是它无法通过输入URL访问任何状态或在家庭以外的状态下刷新。返回的错误为Cannot GET /state-name,但ui-sref="state-name"工作正常。

不使用节点服务器或Express路由,只使用Angular并使用Gulp-Connect运行Web服务器。

技术:

  • AngularJS 1.5.3
  • Angular UI 0.2.18
  • Gulp 3.9.1

Routes.js

angular.module('myApp').config(function(
  $httpProvider,
  $stateProvider,
  $locationProvider,
  $urlRouterProvider
){
  $locationProvider.html5Mode({enabled: true, requireBase: false});

  $stateProvider
    .state('home',{
      url:'/',
      templateUrl: 'path/to/home.tmpl.html'
  })
  .state('state-name',{
    url:'/state-name',
    templateUrl: 'path/to/state-name.tmpl.html'
  });
  $urlRouterProvider.otherwise('/');
});

我是否缺少允许刷新状态或通过网址导航的内容?

2 个答案:

答案 0 :(得分:0)

您应该有一个名为state-name的状态才能访问它。从您的州提供商处,我无法看到任何名称为state-name的州。目前,您的可用状态为homeroute_1

要访问'州名',您需要添加以下状态: .state('state-name',{ url:'/state-name', templateUrl: 'path/to/state-name.tmpl.html' })

答案 1 :(得分:0)

要使用州名称直接访问URL,您需要使用爆炸符号。例如:

For home: http://localhost/#!home
For state-name: http://localhost/#!state-name

当然,用您的主机+上下文+您需要的任何内容替换http://localhost