2016-10-28 11 views
0

大会のスケジュールを作成していて、大会の時間中にURLを変更したいと考えています。ユーザーが土曜日にコンペのページを読み込んだ場合、URLは[URL]?day = saturdayに変更されます(別の日を表示するためにユーザーがクリックするとURLも変わります)。ページの角の変更URL

history.replaceStateが

angular.js:13920 Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting! 

を引き起こしているページの負荷の問題だけでは、だから私は

$location.path('/').search('day='+day).replace(); 

のようなものを使用すると言う。しかし、それは

として出てくるのフォーラムに出くわしました210

URLに/#を入れたくありません。そこで、$ locationProviderの使用について説明するフォーラムを見つけました。

私も

app.config(function($locationProvider) { 
    $locationProvider.html5Mode(true); 
}) 

に追加され、それはまだ$ locationProviderが定義されていないという。私は何が間違っているのか、これが正しい方向であるのか分かりません。ページが読み込まれたときと、ユーザーがクリックしてその日を変更したときに、「日」の日を変更したいだけです。

答えて

0

URLをルーティングして置き換えるときにクリック時に経路変更を取得します。エラー使用すると、あなたの構文は、右

.config(function($locationProvider) { 
    $locationProvider.html5Mode(true).hashPrefix('!'); 
}) 

のようです。しかし、あなたがURLの変更を保持したい場合は、URLに変更を行う必要がありますrouteChangeで

.run(function($rootScope, $location) { 
    $rootScope.$on('$routeChangeStart', function(next, current) { 
    //... you could trigger something here like replacing the actual url ... 
    //$location.path('/').search('day='+day).replace(); 
}); 
}) 

代わりにあなたがすることもできます代替としてhttps://github.com/angular-ui/ui-routerを見て、$のlocation.url()への変更を行います。あなたはngRouterを使用すると、まだエラーにデモ用plunkrコードを取得した場合の状態の定義https://github.com/angular-ui/ui-router/wiki

のオプションをフォーカス取得時に)(交換または解決確かに助けになるより良いデバッグ。

+0

これはほとんどの場合有効です。しかし、ユーザーがイベントの名前をクリックすると、以前と同じようにイベントページに移動することはありません。 URLを変更するだけです。 – pinksharpii

+0

アプリケーションのページ/ルートの名前ですか?もしそうなら、あなたは何を得ているのですか?ページルートをブロックしているブロックスクリプトがなければなりません。使用しているrouteChangeStartのコードを記述できますか?好ましくは、単純なplnkrが良いはずです。 – Gary

関連する問題