2016-04-25 19 views
1

AngularJSとElasticsearchを使用している小さな検索アプリケーションがあり、UIルーターの$state.go()にURLにクエリパラメータを含めると、動作させることができません...なぜか手がかりがない?

Chromeのアドレスバーに

http://localhost:8000/app/search?q=searchTerms

と、それは検索が行われた後も、そのようにとどまる - それがあるべきとき:私のルートでhttp://localhost:8000/app/search?q=userTypedInput

(州)私は

$stateProvider 
     .state('search', { 
     url: '/search', 
     url: '/search?q', 
     $stateParams: {q: 'searchTerms'}, 
     views: { 
      '' : {templateUrl: 'search/search2.html', 
       controller: 'SearchCtrl', 
       contollerAs: 'search'} 
      //add more views here when necessary 
     } 
     }); 
を持っています

と私のコントローラに私が持っています

'use strict'; 

angular.module('searchApp.search', []) 
    .controller('SearchCtrl', ['$scope', '$sce', '$state', '$stateParams', 'searchService', function($scope, $sce, $state, $stateParams, searchService) { 
     //Initialize 
     //$scope.searchTerms = $stateParams || ''; 
    $scope.searchTerms = ''; 
     $scope.noResults = false; 
     $scope.isSearching = false; 

     //pagination 
     //$scope.currentPage = 0; 
     //$scope.itemsPerPage = 10; 

     //results 
     $scope.results = { 
     queryTime: null, 
     documentCount: null, 
     documents: [] 
     }; 

$scope.search = function() { 
    var searchTerms; 
    $state.go('search', {q: 'searchTerms'}); 
    getResults(); 
    }; 

    var getResults = function() { 
    $scope.isSearching = true; 

    searchService.search($scope.searchTerms).then(function(response) { 
... more code 

私は間違って何をしていますか?結果は表示されていますが、私はそれを持っているので、$ state.goでurlのクエリパラメータを取得できません。

+0

タイプミス - あなたは、私が実際にルートモジュールで私のルート/状態を持っているあなたの状態の設定 –

答えて

0
angular.module("myApp", []).run(["$rootScope","$state","$stateParams", function($rootScope, $state, $stateParams) { 
    $rootScope.$state = $state; 
    $rootScope.$stateParams = $stateParams; 
}]); 

$stateProvider.state('search', { 
    url: '/search?q', 
    //don't specify $stateParams here 
    views: { 
     '': { 
      templateUrl: 'search/search2.html', 
      controller: 'SearchCtrl', 
      controllerAS: 'search' 
     } 
     //add more views here when necessary 
    } 
}); 
+0

における2つのURLフィールドを持って、私はそのモジュールの最上部に.RUNコードを置く必要がありますか? – user3125823

+0

これがどのように質問に答えるかを説明するためにテキストを追加しておけばいいでしょう – Mawg

関連する問題