0

我有一个列出学生的基本列表页面。默认情况下,我会列出所有带分页的学生。我也可以设置多个过滤器,例如学生身份、国籍等。

在我的标记中,我有一个带有 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 中使用已设置的过滤器重新加载页面时,这似乎不起作用。我是否正确地构建了我的页面来做我想做的事情?我只有一个控制器,但是从许多在线路由提供程序的示例中,它们通常显示了为每个路由使用单独的控制器的用法。我不确定如何构建我的页面以使用多个控制器来完成我想做的事情。任何帮助,将不胜感激 :)

4

1 回答 1

0

如果您有一个返回分页/排序结果的端点,您可以使用这个 AngularJS 组件在表格中呈现您的数据http://zizzamia.com/ng-tasty/#TableServerSide

于 2014-08-22T19:22:57.273 回答