我有一个列出学生的基本列表页面。默认情况下,我会列出所有带分页的学生。我也可以设置多个过滤器,例如学生身份、国籍等。
在我的标记中,我有一个带有 ng-view 的空 div 标签。我实际上并没有将此标记与模板一起使用,它仅位于标记中,以便路由提供程序可以工作。
在我的 javascript 中,我有一个名为 StudentListingController 的控制器,它被分配给页面的主要部分。
过滤器的所有参数都存储在一个名为 filterData 的变量中,该变量在发出 HTTP 获取请求以更新列表时传递。
例如,当我将页面更改为第 2 页时,我对 filterData 参数进行 JSON 编码并将其放入 URL 中。
$location.path("/filter/" + $filter('json')($scope.filterData));
但是,如果我刷新浏览器,我希望我的页面记住过滤器的状态并从第 2 页开始(或以特定的学生身份等)。
我目前的路由提供程序配置如下:
app.config(['$routeProvider',
function($routeProvider) {
$routeProvider
.when('/filter/:filter', {
template: null,
controller: function($scope, $routeParams) {
$scope.filterData = angular.fromJson($routeParams.filter);
$scope.fetchStudents();
}
}).
otherwise({
template: null,
controller: function($scope) {
$scope.fetchStudents();
}
});
}]);
我的问题是,当我在 URL 中使用已设置的过滤器重新加载页面时,这似乎不起作用。我是否正确地构建了我的页面来做我想做的事情?我只有一个控制器,但是从许多在线路由提供程序的示例中,它们通常显示了为每个路由使用单独的控制器的用法。我不确定如何构建我的页面以使用多个控制器来完成我想做的事情。任何帮助,将不胜感激 :)