После выполнения поиска и перехода я хочу, чтобы пользователь мог вернуться на страницу поиска (путем повторного нажатия в браузере) и сохранить текущие параметры поиска. Я понял, что для этого URL-адрес страницы должен быть обновлен, чтобы содержать данные о странице. Проведя исследование, я обнаружил, что могу обновить местоположение с помощью $location
и заставить страницу НЕ перезагружаться при внесении изменений с помощью reloadOnSearch
в маршрутах. Однако по какой-то причине, когда я меняю параметры поиска (url?...
), страница действительно перезагружается. Любая идея, как исправить это, чтобы предотвратить перезагрузку?
routes.coffee:
'use strict'
angular.module('app.rc.routes', ['ui.router'])
.config ['$stateProvider', '$urlRouterProvider', ($stateProvider, $urlRouterProvider) ->
$urlRouterProvider.otherwise '/'
$stateProvider
...
.state('resource_center.search',
url: '/resources/search?term'
templateUrl: 'views/rc/search.html'
controller: 'SearchCtrl'
reloadOnSearch: false
)
...
]
search.coffee:
'use strict'
angular.module('app.rc.controllers').controller 'SearchCtrl', ['$scope', '$state', '$http', '$stateParams', '$location', ($scope, $state, $http, $stateParams, $location) ->
$scope.term = $stateParams.term || ''
$scope.updateResults = ->
console.log "Loading Results"
...
$location.search({term: $scope.term})
Ссылки:
В качестве ссылки на то, как правильно это сделать, я использовал: https://stackoverflow.com/a/12481175/1382588