2016-04-06 5 views
1

小さな検索アプリケーション用にUIルータでクエリパラメータを使用する際に問題があります。名前付きビューのUIルータクエリパラメータ

私は角度、ちょうど家庭と結果のページを理解するまで、今実際の単純な今。ホームページにはオートコンプリート機能付きの検索ボックスがあります。検索ページに同じ検索ボックスと結果が表示されます。私の検索ボックスには、search()を呼び出すボタンがあります。 search()には、$ state.go( 'state'、{q: 'searchTerms'})があります。searchTermsは入力のng-modelです。結果ページにホームページから行く

は、URLは同じまま:INSTEAD http://localhost:8000/app/search?q=usertypedinput

理由を

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

私の状態(ルート)

$stateProvider 
    .state('home', { 
    url: '/home', 
    templateUrl: 'home/home.html', controller: 'homeCtrl'}) 
    .state('search', { 
    url: '/search?q', 
    views: { 
     '' : { templateUrl: 'search/search.html', controller: 'searchCtrl' } 
     //add more views here when necessary 
    } 
    }); 

あなたは私がネストされたビューの代わりに名前付きビューを使用している見ることができるように。多くの例ではネストされたビューを使用しているので、それが問題を引き起こしているのか、何か不足しているのかどうか知りたいのです。

検索アプリでネストされたビューを使用する方がよいでしょうか?

答えて

1

は、私はすべてがstate.goでいくつかの臭い構文を除いて正しかった、それを考え出した:((

$state.go('search', {q: 'searchTerms'}); 

単一引用符なし

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

のSearchTermsをされている必要があります$scope

他の誰かが何かの時間を無駄にしないように単純です。

0

ホームページのURLはhttp://localhost:8000/app/homeであり、検索ページ(結果ページ)のURLはhttp://localhost:8000/app/search?q=searchTermsとなります。

家から検索結果ページに移動するためのクエリを提出しています。したがって、検索結果ページにはURLにqueryParamsが含まれます。

ネストされたビューを使用しているかどうかは関係ありません。 URLはUI-Routerで完全に設定可能です。あなたが検索ページのURLでクエリのパラメータを見たくない場合。あなたはそれを非URLパラメータとして渡すことができるので、あなたはparamデータを得ることができますが、URLには見えません。 Check this URL以外のパラメータの詳細については、こちらをご覧ください。

+0

私は検索ページのURLにクエリパラメータを表示したいが、表示されないようにしたい!代わりに、私はq = userTypedInputを取得しようとしているときにq = searchTermsのままです – user3125823

関連する問題