2017-03-01 22 views
3

私はSPAを持っていますが、ng-viewにルーティングを使用したいと思います。URLからSPAがルートにない(およびfilename.aspxを含む)ルーティングとリフレッシュ

私はコードにdomain.com/folder/dashboard.aspxを添付しています。 これは既存のページの一部ですが、別の場所に移動することはできません。

私はルートを使用する場合/それをリストでは動作しますが、ページを更新する機能を破るdomain.com/folder/list/に私のURLを変更(およびdashboard.aspxがデフォルトのページではありませんので、404を与え、またそれをすることができます)

URLをdomain.com/folder/dashboard.aspx/listとするにはどうすればよいですか?

dashboard.aspx/listなどのさまざまな調整を行ってルートを設定しようとしましたが、幸運はありませんでした。それはあなたのサーバ設定で処理されるべきであるだけで、@Claiesが言ったように

+0

このISN」からベースタグを削除Dashboard.aspx#!/list/item/list

/list、私のリンクについて/list/item が、私は完全なURLを使用し、通常のように私のルートを、設定しましたangularjsによって特に解決された、これはあなたのサーバーに関連するものです。存在しないURLにページを読み込むためにサーバー上でリダイレクトを設定する必要があります。どのようにこれを行うかは、使用しているサーバーによって異なります。 – Claies

+0

私はサーバーに触れる方法がありません。それは既存のビジネスアプリケーションであり、私はその単一のページにコードを追加することしか許されません。 – Aboba

+0

あなたは問題で選択肢がありません。これは、ブラウザでは処理できない動作です。履歴APIを使用してパスを変更できる可能性がありますが、リロードするとそのインスタンスでアプリが完全にリセットされます。 – Claies

答えて

2

私はそれを理解しました。

HTML5モードを使用することはできません.Hashbangを使用する必要があります。

は、私はまた、htmlページ

2

、ちょうどつもりはあなたが

var routeWithoutResolving = function (template: string, title?: string, style?: string) { 
    var name; 
    var slashIdx = template.indexOf('/'); 

    if (slashIdx !== -1) { 
     name = template.substring(0, slashIdx); 
     template = template.substring(slashIdx + 1); 
    } else { 
     name = template; 
    } 

    var templateUrl = '/folder/' + template + '.aspx/'; 

    return { 
     templateUrl: templateUrl, 
     title: title, 
     style: style, 
     area: _.capitalize(name), 
     page: template, 
     reloadOnSearch: false 
    } 
} 

使用

.when('/domain.com/folder/dashboard.aspx/list', routeWithoutResolving ('folder/dashboard.aspx')) 
これをまだ試していない場合にはここで私のルートの設定をドロップ
+0

私はサーバーの設定に触れる方法がありません。これは、別のアプリケーション用にすでに実行されているサーバー上の既存のページです。私はそのページに直接コードを追加する機能しか持っていません。 – Aboba

関連する問題