Angularjs:仅将配置用于一个控制器

在一个页面上,我根据用户选择(过滤器)通过ajax加载内容,以确保在用户重新加载或登陆页面时加载的内容保持不变,我将选中的过滤器放入url查询字符串中.由于我在此特定页面上通过ajax加载内容,因此每次用户选择新过滤器时都不需要重新加载整个页面,因此我阻止浏览器使用以下配置对URL更改做出反应:

app.config(['$locationProvider',function($locationProvider) {
    $locationProvider.html5Mode(true);
}]);

但是这会影响整个应用程序并阻止所有其他页面重新加载url更改,这是我不想要的行为.如何使此配置仅影响我的应用程序中的一个特定控制器?

解决方法

如果您的目标是在查询字符串更改时阻止重新加载页面,则html5Mode完全是该作业的错误工具.您想要reloadOnSearch:false,可以全局应用或应用于单个路由:

$routeProvider
  .when('/foo',{
    controller: 'fooCtrl',templateUrl: 'foo.html',reloadOnSearch: false
  },...
);

https://docs.angularjs.org/api/ngRoute/provider/$routeProvider

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...