2016-04-07 7 views
0

私は最後のスラッシュを含むURLを挿入するとこれは、例えば、「http://localhost/myApp/を」作品angularjsルートが最後のスラッシュなしで動作していない/

​​

$routeProviderをこのように構成しました。スラッシュを使用しないときは、URLが正しく変更されないため、基本的にスラッシュを使用しない場合
"スラッシュを使用しないと、基本的にURLが変更されるためです。
" http://localhost/myApp " - >" http://localhost/myApp#/ "

どうすればよいですか?最初のページを定義するのに最初のwhenパラメータを間違って使用しましたか?あるいは、私は何らかの訂正をする必要がありますか?

私は既に$urlMatcherFactoryProvider.strictMode(true);を追加しようとしましたが、正しく機能していないことがわかりました(最初の行はmiNgAppplication.config(['$routeProvider', '$urlMatcherFactoryProvider', function ($routeProvider, $urlMatcherFactoryProvider) {となりましたか?)。

答えて

1

otherwiseメソッドを使用して、一致しない場合のデフォルトのURLを設定します。

miNgAppplication.config(['$routeProvider', function ($routeProvider) { 
    $routeProvider 
     .when("/", { 
      templateUrl: "Base/FirstPage", 
      controller: "miNgControllerFirstPage" 
     }); 
    $routeProvider.otherwise('/'); // <-- this should take the user to the first page. 
}]); 
+0

これは正しく動作しません。私は、URLが誤って解釈されていると思います。正確なURLは 'http:// localhost/apps/TestClient'です。それは 'http:// localhost/apps/TestClient#/'に変換し、 'otherwise'はリダイレクトしようとしますが、' templateUrl'は何らかの形で間違って追加されます。 'http:// localhost/apps/TestClient/Base/FirstPage'ではなく、' http:// localhost/apps/Base/FirstPage'がコンソールにerroを生成します。おそらくURLが/ apps/TestClient /#/それが基盤が/ apps/TestClient /であるときに/ apps/TestClient#/それが基盤だけだと思う​​/ apps/ – Naigel

+0

あなたがhttp: /stackoverflow.com/questions/17319715/how-to-set-root-location-for-angularjs-router –

+0

提案していただきありがとうございます。簡単な解決法が見つからなかったので、ルートイベントを聞き、#/で終わるURLを/#/で変更することにしました。これは醜い解決策ですが、少なくとも動作します – Naigel

0

解決方法が見つかりませんでした。誰かが私にヒントを与えてくれることを願っていますが、私はこの(醜い)方法を解決しました。基本的に私は$ルートイベントを聞き、必要なときにリダイレクトします。

miNgAppplication.run(function ($rootScope) { 
    $rootScope.$on("$routeChangeError", function (event, next, current) { 
     if (miLib.endsWith(window.location.href, "#/") && !miLib.endsWith(window.location.href, "/#/")) { 
      event.preventDefault(); 
      var newLink = window.location.href.substr(0, window.location.href.lastIndexOf("#/")) + "/#/"; 
      console.clear(); 
      window.location.href = newLink; 
     } 
    }); 
}); 
関連する問題