javascript - 记住在函数中使用的搜索查询

标签 javascript c# angularjs asp.net-web-api

我使用 Angularjs 和 dirPagination 插件来连接 Web API。这似乎工作正常。我添加了一个搜索功能,进行服务器端搜索:

        $scope.searchChanged = function () {

            if ($scope.searchFor.length == 0) {
                $scope.calculatedValue = 'e';
            } else {
                vm.getData(vm.pageno, vm.getSearch($scope.searchFor));
            }
        }

        vm.getSearch = function (query) {

            if (query == undefined) {
                query = 'tech';
            } else {
                query = query;
            }
            return query;
        }

参见Plnkr完整代码 如果我开始搜索(例如销售),API 返回结果并且分页正确,则获取请求为:

/api/students/?category=sales&begin=1&pageSize=10

但是如果想要转到其他页码,向服务器的get请求是:

  /api/students/?category=tech&begin=2&pageSize=10

View 如何记住查询“sales”,以便分页和结果正确?

最佳答案

您在这里犯了一个常见的错误:如果您已经在使用作用域变量,则不需要从 View 中传递变量。

更改为这一点会更不容易出错

        // change this to var getSearch or function getSearch if you don't need it on the view anymore
        vm.getSearch = function () {
            var query = vm.searchFor;
            // you should only use vm, change ng-model to data.searchFor

            if (query == undefined) {
                query = 'tech';
            }

            return query;
        }


        vm.getData = function () {
            vm.users = [];

            $http.get("/api/students/?category=" + vm.getSearch() + "&begin=" + vm.pageno + "&pageSize=" + vm.itemsPerPage).success(function (response) {
                vm.users = response.data;
                vm.total_count = response.total_count;
            });
        };

关于javascript - 记住在函数中使用的搜索查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38367718/

相关文章:

javascript - CoffeeScript 和浏览器缓存

c# - 如何在方法中提供可为空的参数?

javascript - Angular JS - Ng-Repeat 问题

ruby-on-rails - 错误 : Unknown provider: aProvider <- a

javascript - 在 JavaScript/jQuery 中,是否可以在滚动时跟踪页面上多个 HTML 元素的可见性?

javascript - Google +1 按钮在多个子页面之间共享,但它不应该

javascript - 向客户端提供个性化 JavaScript 代码

c# - 如何阻止用户在 session 事件期间单击屏幕上的任意位置

c# - 从字符串数组中删除项目

ajax - 如何使用 AngularJS 通过调用 Web 服务下载图像文件并保存到本地硬盘