Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
角路线&;angularJS中的分页_Angularjs_Pagination_Angularjs Routing - Fatal编程技术网

角路线&;angularJS中的分页

角路线&;angularJS中的分页,angularjs,pagination,angularjs-routing,Angularjs,Pagination,Angularjs Routing,我正在AngularUI引导中进行分页 searchapp.config(function ($routeProvider, $locationProvider) { $locationProvider.html5Mode(true); $routeProvider .when('/search?page', { controller: 'classifiedAdController', reloadOnSearch: false }); });

我正在AngularUI引导中进行分页

searchapp.config(function ($routeProvider, $locationProvider) {
  $locationProvider.html5Mode(true);

  $routeProvider
    .when('/search?page', {
      controller: 'classifiedAdController',
      reloadOnSearch: false
  });
});

searchapp.controller('classifiedAdController', function ($scope, $location, $routeParams, ClassifiedAd) {
$scope.$watch('currentPage', function(page) {
      console.log(page);
      $location.search('page', page);
    });
});
这是我的实现,当页面和分页正确加载时,一切都可以正常工作localhost:3000/search。然后,当我单击第1、2、3页时,url将更改为localhost:3000/search?page=2

但当我在地址栏中手动复制localhost:3000/search?page=2时,它会将我的url路由回localhost:3000/search


有什么提示或想法来实现这一点吗?angularRoute提供者实际上是怎么做的?

只需删除route中的
?页面

使用以下命令:

$routeProvider
    .when('/search', {
        controller: 'classifiedAdController',
        reloadOnSearch: false
    });
然后在控制器中:

  $scope.$watch(function() {
      return $location.search().page
  }, function(newVal, oldVal) {
      $scope.page = newVal;
  });

我会用一种角度更大的方式来实现这一点,您的路线可以是/search/page/2,您可以使用:parameters向角度路线添加参数,它看起来像:

  $routeProvider
    .when('/search/page/:page', {
       controller: 'classifiedAdController',
       reloadOnSearch: false
   });
然后,您将拥有一个“页面”参数,可以从控制器中检索。
它也可以像这样工作:
。当('/search?page=:page',{
但我从未尝试过

Hmm,但我希望手动执行localhost:3000/search?page=2,那么它将实际查询数据库中的page2结果。我尝试过的解决方案无法工作……有什么想法吗?您可以在
$location.search()上添加一个监视程序.page;
查看我现在编辑的答案。您好@Raghav,您的实现和我现有的实现有什么不同?我看不出有什么不同,当我更改您的代码以测试它时,它仍然是url,但我的角度引导分页不再工作。想一想?您正在监视范围变量,而当changed,您正在更改位置参数。在我的实现中,我正在监视位置参数的更改,然后更新范围变量。嗯,但是当我单击“下一页”或“上一页”时,我的分页不再工作,参数不会更改..yupz,我找到了/搜索?页是正确的语法,但不知道为什么,当我y键输入localhost:3000/search?page=2它会将我路由回localhost:3000/search。这实际上不是我想要的行为。