2016-07-25 4 views
0

私はUI-Routerを使ってそのページをナビゲートする小さなWebアプリケーションを構築しました。ブラウザの更新や状態リンクを使用した特定のページへのアクセスは、すべて正常に動作します。私はいくつかのソリューションを同じトピックについてここに掲載しましたが、追加情報が不足している可能性があります。AngularJS UI-Routerでブラウザをリロードして現在の状態を維持する方法は?

下のui-srefリンクをクリックすると、「mysite/content」が表示され、ページが正常に表示されますが、一度更新するかリンクを貼り付けるだけでページを見つけられません。

期待どおりに動作するように手伝ってください。前もって感謝します。

HTML

<p ui-sref="content">Link To Content</p> 

AngularJS html5Modeで

var app = angular.module('myApp',['ui.router']); 

app.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', function($stateProvider, $urlRouteProvider, $locationProvider){ 


    $urlRouteProvider.otherwise('/'); 


    $stateProvider 

     .state('home', { 
      url: '/', 
      views: { 
       '': { templateUrl: '/app/templates/wrapper.html'}, 
       'na[email protected]': { templateUrl: '/app/templates/nav.html'}, 
       '[email protected]': { templateUrl: '/app/templates/header.html'}, 
       '[email protected]': { templateUrl: '/app/templates/footer.html'} 
      } 
     }) 

     .state('content', { 
      url: '/content', 
      views: { 
       '': { templateUrl: '/app/templates/content.html'}, 
       '[email protected]': { templateUrl: '/app/templates/nav.html'}, 
       '[email protected]': { templateUrl: '/app/templates/header.html'}, 
       '[email protected]': { templateUrl: '/app/templates/footer.html'} 

      } 
     }); 

    $locationProvider.html5Mode(true); 


}]) 
+0

ページが読み込まれる前に解決する必要のあるデータがありますか?アプリデータが読み込まれていない可能性があります... –

+0

現在、アプリは完全に空です。今、$ locationProvider.html5Mode(true)をfalseに設定すると、期待通りに動作しますが、リンク内のダッシュが付いていることに気付きました。それを解決しようとする –

答えて

0

trueに設定ページを更新する際、お使いのブラウザは、 '個人用サイト/コンテンツ' へのリクエストを行います。従来の1ページアプリケーションでは、バックエンドにいくつかのデータに応答する一連のルートがあり、通常は他のすべてのルート(たとえば 'mysite/content')のアプリケーションindex.htmlを返すように設定されています。

html5Modeを無効にすると、ブラウザが '#'の後ろにある部分を除いたURLにリクエストします。このため、バックエンドは期待されるindex.htmlを確実に返します。

関連する問題