在带有AngularJS's documentation的AngularJS 1.4.8中,我尝试从URL捕获搜索参数,然后从URL 清除它们,而不用重新加载路由。通过在我的路由配置中设置reloadOnSearch: false
,可以轻松实现这一点。但是,在从URL清除搜索参数后,我确实希望我的路由在搜索时重新加载。
是否可以临时启用/禁用reloadOnSearch
,还是需要禁用它,然后使用ngRoute手动触发重新加载?
这是我目前的配置:
angular.module('myApp', ['ngRoute'])
.config(routeConfig)
.controller('MyViewController', MyViewController)
;
function routeConfig($routeProvider) {
$routeProvider
.when('/', {
controller: 'MyViewController',
controllerAs: 'myView',
reloadOnSearch: false,
template: '<h1>Search Params</h1><ul><li ng-repeat="(key, value) in myView.params">{{key}}: {{value}}</li></ul>'
})
.otherwise('/')
;
}
function MyViewController($location) {
var myView = this;
myView.params = $location.search();
$location.search({});
}
理想情况下,在致电$location.search({});
后,我想设置reloadOnSearch: true
。