在执行搜索并离开后,我希望用户能够返回搜索页面(通过在浏览器中回击)并保留当前的搜索参数。我开始意识到,为了做到这一点,必须更新页面 url 以包含有关页面的数据。通过研究,我发现我可以使用在路线中$location
进行更改时使用更新位置并强制页面不重新加载。reloadOnSearch
但是,由于某种原因,当我更改搜索参数 ( url?...
) 时,页面实际上会重新加载。知道如何修复它以防止重新加载吗?
路线.咖啡:
'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
)
...
]
搜索.咖啡:
'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