2017-04-14 73 views
0

我想在頂層創建一個路徑變量。例如: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 –

回答

1

在主模塊中的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應用程序時會發生什麼。 –