在一个页面上,我根据用户选择(过滤器)通过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