私はAngularJsを使ってWebアプリケーションを構築しています。私は検索ページを持っています。ユーザーテープにはいつも、バックエンドからデータを取得して、 $ location.search()サービスを使用しています。ユーザーがリフレッシュボタンを押すと、ビューの状態(同じクエリ)を保存します。現在のクエリを取得するために$ location.search()を使用しますが、空のオブジェクトであり、コントローラが再ロードされてスコープがなくなる(ユーザクエリを含むスコープ)。ng-routeを使用していて、reloadOnsearch = falseを設定します。$ locationを使用してurl変更と更新ボタンを処理できます。 search()サービス?
app.controller('resultCrtl',function($scope,myService,$http,$location,$window) {
/*guetting query from previous view*/
$scope.userquery=myService.get();
var uri;
/*testing the refresh */
if(!myService.get())
{
var loc=$location.search('query');
$window.alert(loc);
/* it returns an empty object*/
}
else {
$http({
method : 'GET',
url : '/response/' + $scope.userquery
}).success(function(data) {
$scope.result = data;
uri=encodeURI($scope.userquery);
$location.search('query',uri);
}).error(function(data, status, headers, config) {
alert("failure");
});
$scope.search=function(){
/* same code to get data and update the url */
}
});
実際に私はngrouteと一緒に働いています。$ stateParamsはui-router moduleで提供されていると思います。ページが更新されるときに問題が発生するので、何も取得できません...ありがとうと思います。 ) – desmanda