検索を実行した後、結果ページのURLにユーザーの検索語を表示するように検索アプリケーション(AngularJSとElasticsearch)を設定しようとしています。そのパラメータをクエリパラメータまたはURLパラメータと見なすべきですか?私は自分の州のUIルータを使用していますが、現在は以下のようにクエリパラメータとして設定しています。ただし、現在の設定では、検索が中断されます。
だから、それはURLパラメータである必要がありますか? 2)正確に私のsearch()
を構成して、角膜$http get
コールでパラメータを含むようにして、検索が機能するようにしますか?私の状態については
(UIルータ)を
.state('search', {
url: '/search?q',
ユーザーが検索用語を入力
.state('home', {
url: '/',
、結果が表示され、より多くの検索は、検索のために
を行うことができます()私のコントローラで//for query parameters
var config = {
params: {
q: vm.searchTerms
}
};
//search()
vm.search = function() {
$state.go('search', {q: vm.searchTerms});
console.log(vm.searchTerms);
console.log('success - search');
vm.currentPage = 1;
vm.results.documents = [];
vm.isSearching = true;
return coreService.search(vm.searchTerms, vm.currentPage, config
)
.then(function(es_return) {
console.log('success - return');
var totalItems = es_return.hits.total;
var totalTime = es_return.took;
var numPages = Math.ceil(es_return.hits.total/vm.itemsPerPage);
vm.results.pagination = [];
for (var i = 0; i <= 10; i++) {
console.log('success - for');
vm.results.totalItems = totalItems;
vm.results.queryTime = totalTime;
vm.results.pagination = coreService.formatResults(es_return.hits.hits);
vm.results.documents = vm.results.pagination.slice(vm.currentPage, vm.itemsPerPage);
console.log('success - documents');
}
vm.noResults = true;
}),
function(error){
console.log('ERROR: ', error.message);
vm.isSearching = false;
},
vm.captureQuery();
console.log('success - captureQuery');
};
クエリパラメータはURLにありますが、検索は中断しません。
更新 詳細。あなたはホームページ( 'home')の状態でクエリを入力し、クエリを送信すると$ state.goを使用して結果ページである( 'search')状態に移行します。ホームページと結果ページでは、それぞれのビューに2つの異なるテンプレートを使用します。だから、私は2つの検索ボックスを持っている - ホームページに1、結果ページに1。
「ホーム」状態から開始するか、「検索」状態でクエリを入力するかは、検索条件がurlで表示されています。そのすべてが壊れているのは検索機能です。これはURLにパラメータを実装しようとする前に機能していました。それが違いを作るか、問題を引き起こしている場合
はまた、私はこの
vm.searchTerms = $stateParams.q || '';
わからないようなvm.searchTermsを初期化?
少なくとも完全な機能を投稿できますか?一部の情報源が見当たりません。 – Thomas
@Thomas、それはその上にconfigオブジェクトを持つ私の全検索機能です。 – user3125823
@トーマス、私は偶然あなたの最後のコメントを削除したと思います。search()は私のsearchControllerにあります – user3125823