2017-07-03 7 views
0

AngularJSの$ locationサービスと関連して質問があります。URLを持つパラメータAngularJS

$location.path('pageNumber='+$scope.page+'&'+'pageSize='+$scope.pageSize); 

今の質問私はURLから変数を書くことができ、そしてどのように私は確認することができた場合は、例えば、変数が存在する方法である:私はボタンでクリックしたときに、私は、URLを設定したpageSize

あなたは上 $location.search()を使用する必要が
+0

のように存在するかどうかを確認することができ、この [AngularJSでページングを行う方法?](https://stackoverflow.com/questions/ 10816073/how-to-do-paging-in-angularjs) –

+0

$ locationProvider.html5Mode(true)を設定しました。 –

答えて

0

リダイレクトされたページのコントローラ。

$location.search()は、キーを変数として、値を値として持つオブジェクトを返します。だから、あなたはこのようなクエリ文字列書く場合:

?pageNumber=5&pageSize=10 

は、その後、あなたがpageNumberと、このようなpageSizeの値を取得することができ、

$scope.pageNumber = $location.search().pageNumber; 
$scope.pageSize = $location.search().pageSize 

をそして、あなたは今、この

のように存在するかどうかを確認することができます
if(angular.isDefined($scope.pageNumber)){ 
    //true if pageNumber exist 
} 

if(angular.isDefined($scope.pageSize)){ 
////true if pageSize exist 
} 

ここでは、これは角度でハッシュバングでは機能しないと考えています。 $location.search()の空の値(オブジェクト)が得られます。この時点で、あなたは明示的に設定でこれを定義する必要があります。

moduleName.config(['$locationProvider', function($locationProvider){ 
    $locationProvider.html5Mode(true);  
}]); 

OR

あなたは、あなたがにjavascriptの方法を使用することができるページ・リフレッシュのためのサーバールートを必要とするので、html5Modeを使用しない場合以下のようなクエリ文字列を取得:

function getQueryString(name) { 
    var url = window.location.href; 
    name = name.replace(/[\[\]]/g, "\\$&"); 
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), 
     results = regex.exec(url); 
    if (!results) return null; 
    if (!results[2]) return ''; 
    return decodeURIComponent(results[2].replace(/\+/g, " ")); 
} 

とあなたのコントローラ内で、あなたはこの

$scope.pageNumber = getQueryString('pageNumber'); 
$scope.pageSize = getQueryString('pageSize'); 
のように初期化する必要があります

そして、あなたは、角度のチェックを使用して改ページを作るために抱き合わせている場合は、あなたが今、この

if(angular.isDefined($scope.pageNumber)){ 
    //true if pageNumber exist 
} 

if(angular.isDefined($scope.pageSize)){ 
////true if pageSize exist 
} 
+0

$ locationProvider.html5Mode(true)を設定しました。 –

+0

Iは、上の正しい: product.config([ '$ locationProvider'、関数($ locationProvider){ \t $ locationProvider.html5Mode({ が有効:真、 requireBase:偽 }); }])。 今、問題があります。なぜなら、リンクURLをナビゲートしてクリックすると、URLは変更されますが、サイトは更新されずに変更されます。 – Turqus

+0

サーバーのすべてのページのルートを定義して、ページが更新されてサーバールートがアクセスされ、ng-view(またはui-view)を持つAngularのマスターページのパスを返すようにする必要があります。 –