Angularjs 1.x - UIRouter Path/XYZ vs /#!/ XYZ

问题描述:

我想在顶层创建一个路径变量。例如:website/XYZ123其中XYZ123是某些帐户代码。我该如何在角度应用程序中做到这一点?Angularjs 1.x - UIRouter Path/XYZ vs /#!/ XYZ

我的配置如下:

$urlRouterProvider.otherwise('/'); 
    .state ('/', { 
      url: '/', 
      templateUrl: 'views/landing.html', 
      controller: 'landingCtrl', 
      authenticate: false 
     }).state ('signin', { 
      url: '/{accountCode:[0-9A-Z]{6}}', 
      templateUrl: 'views/student/signin.html', 
      controller: 'studentSigninCtrl', 
      authenticate: false 
     }) 

website.com/#!/XYZ123 - 工程..但我能做些什么来让website.com/XYZ123也去了angularjs SPA?

感谢

+0

https://docs.angularjs.org/guide/$location –

+0

非常感谢你指点我正确的方向和及时回复@JBNizet –

在主模块中的config块,你可以使用$locationProvider关闭HTML5模式,而不是在路径显示哈希:

// Removes the fragment identifier ('#') from urls 
$locationProvider.html5Mode(true); 

注有做的一些注意事项这一点,主要是你需要确保你包括<base>标签在你的主(指数)的HTML文件:

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

对于d请参阅$locationProvider

+0

我做了。只要我在应用程序。但是,当我点击浏览器刷新按钮时,我得到不能GET/3R2YA2 –

+0

我要在sws/cloudfront上主持这个应用程序,所以我不确定是否需要更改某些内容,以便书签等可以在我的应用程序上工作。有什么建议么? –

+0

@AliceWaterland,我想你需要了解当你刷新AngularJS SPA应用程序时会发生什么。 –