2016-04-19 11 views
0

私は角度ルータとUIルータを使用しています。ユーザーがコピーして共有できるページにリンクを表示しようとしています。 This threadは、$state.hrefが私が探している機能ですが、正しいリンクを生成していないことを示しています。

ここで重要なのは、アプリケーションのルートがドメインのルートではないということです。この場合、ドメインはlocalhostですが、角度アプリのルートはlocalhost/dev/app/になります。

私のコントローラ内で使用しているコマンドは次のとおりです。私app.jsで

$scope.url = $state.href('survey', { survey: "asd" }, {absolute: true}); 

、以下のルートが宣言されています:

.state('survey', { 
    url: "/:survey/survey?ao", 
    templateUrl: "views/survey/survey.html", 
    controller: "surveyController", 
    }, 
    data: { 
     requireLogin: false, 
     requireAdmin: false 
    }}) 

はこれではなく、それはhttp://localhost/#/asd/surveyを返し、http://localhost/dev/app/#/asd/surveyを返す必要があります。

(目覚しいものがui-sref="survey({survey: "asd"})が正しいリンクに変換していることである。)

私は完全なURLを取得するので、これを修正することができます方法はありますか?

答えて

1

をアプリのページでこの問題を解決しました。これは、ルータ参照を持つページのベースURLを定義します。従来のサポートの理由から、私はAngular UI Routerのバージョン0.2.15を使用しています。現在のバージョンではこれがまだ必要かどうかはわかりません。

<base href="http://localhost/dev/app/" /> 
0
.state('survey', { 
    url: "/:survey/survey?ao", 
    templateUrl: "views/survey/survey.html", 
    controller: "surveyController", 
    data: { 
    requireLogin: false, 
    requireAdmin: false 
    } 
}) 

コントローラの後に「}」が追加されました。また、あなたはのparamsラインとしてことを含めることができますパラメータを渡す場合:URLをしたい場合も

params: { 
    survey: null 
} 

http://localhost/dev/app/#/asd/surveyあなたのURLは次のようになります。私にbaseタグを追加する

url: "dev/app/:survey/asd/survey" 
関連する問題