私の AngularJS アプリケーションには、次のルーティング メカニズムがあります。
$routeProvider.when('/questions',
route.resolve('questions',
'questions/',
'questions',
'overview',
access.authorizedAccess))
domain.com/app/#/questions
これは正しく機能し、正しいコントローラーとテンプレートをロードするように URL をヒットします。
私がやりたいことは、ページのリロードをトリガーせずに現在の URL にパラメーターを追加するオプションを用意することです (基本的には URL を再解釈します)。私が今抱えている問題はwindow.location.hash = '#/questions?query=test';
、ルートを実行することで再解釈され、ページのリロードが発生することです。
私がやろうとしたことはこれでした:
$rootScope.$on("$locationChangeStart", function (event, next, current) {
if (next.indexOf('?') > -1)
event.preventDefault();
});
これは確かにルートの再解釈をトリガーしませんが、ハッシュからパラメーターを削除し、に戻します'/questions'
。