2017-02-12 15 views
1

私のアプリケーションでAngular UIルーターを使用しようとしています。私がUIルータを初期化するときに、localhost:8000/#/と言うのではなく、localhost:8000/#!#%2Fとなります。次のように角度UIルーター初期化

私app.jsは次のとおりです。私は私のquiz.routes.jsで

angular 
    .module('quiz',['ngMaterial', 
        'ngMessages', 
        'ngCookies', 
        'ngResource', 
        'quiz.routes' 
        ]).config(function($resourceProvider) { 
            $resourceProvider.defaults.stripTrailingSlashes = false; 
            }); 

angular 
    .module('quiz.routes',['ui.router']); 

(function() { 
    angular 
    .module('quiz.routes') 
    .config(config); 

    function config($urlRouterProvider,$stateProvider){ 
     $stateProvider 
      .state('register',{ 
       url: '', 
       templateUrl: '/static/templates/register.html' 
      }); 
    } 

})(); 

ので、代わりの末尾にスラッシュ私は私に#%の2Fを入手します! URL。どうしてこれなの?

+0

メインモジュールにquize.routesを注入しましたか? – Sajeetharan

+0

はい、私はコードを編集します、私はここにそれを追加することを忘れました –

+0

まあ、私はこれについての答えを書くのに十分ではない。しかし、私は、あなたの場合には、あなたのURLを設定する必要があると思う/ '...抽象的な状態を定義している場合、あなたは空のURLしか持たないでしょう。 – Canastro

答えて

3

角度バージョン1.6を使用していると仮定すると、これはデフォルトのhashPrefixの変更が今や!に設定されているためです。修正するには、$locationProviderをモジュールのconfigブロックに挿入し、デフォルトのhashPrefixを空の文字列に戻す必要があります。

$locationProvider.hashPrefix('') 

それはデザインによってだったし、意図的に変更されていることが判明したが、これは、reported as a bug hereました。

+1

助けてくれてありがとう。今働いている。 –

+0

ああ素晴らしい。私は今、ゆっくりと接続しているので、私が上でコメントする前にあなたが答えを受け入れたことを見ていませんでした。それがうまくいった。 –

関連する問題