Angular ngRoute:如何暂时禁用reloadOnSearch?

时间:2016-01-25 18:42:35

标签: angularjs ngroute angularjs-ng-route

在带有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

0 个答案:

没有答案