私は同様の問題に直面していました。多くのグーグルと試行錯誤の末、実用的なソリューションにたどり着きました。これがあなたのために働く私の解決策です。
searchBoxControllerとstateResultControllerの2 つのコントローラーと、検索ボックスを持つビューからリモート サーバーからフェッチされた結果を表示するビューに渡されるsearchQueryという名前のパラメーターがあります。これはあなたがそれを行う方法です:
以下は、次のビューを呼び出すコントローラーです。$state.go()
.controller('searchBoxController', function ($scope, $state) {
$scope.doSearch = function(){
var searchInputRaw = $scope.searchQueryInput;
$state.go('app.searchResults', { searchQuery: searchInput });
}
})
以下は、$state.go()
gets が実行されたときに呼び出される状態です。
.state('app.searchResults',
{
url: '/searchResults',
views:
{
'menuContent': { templateUrl: 'templates/searchResult.html', controller: 'stateResultController' }
},
params:
{
'searchQuery': ''
}
})
最後に、状態に関連付けられたコントローラーapp.searchResults
:
.controller('stateResultController', function ($scope, $state, $stateParams, $http) {
$scope.searchQueryInput = $stateParams.searchQuery;
});