以离子滑动右键导航到下一页

时间:2015-10-08 05:46:38

标签: angularjs ionic-framework angular-ui-router

我想在向右滑动时进入博客列表的下一页。

我的观点是:

<p on-swipe-right="onSwipeRight()" ng-bind-html="blog.content"> {{blog.content}}</p> 

和控制器功能是:

 $scope.onSwipeRight = function () {
    // Do whatever here to manage swipe left
    //alert('Right swipped');
    .state('lab-components', {url: '/blog/:id'})
  }

但这不起作用。

1 个答案:

答案 0 :(得分:5)

我不明白这意味着什么:

.state('lab-components', {url: '/blog/:id'})

如果您想从一个州迁移到另一个州,可以使用$state,特别是$state.go()

在使用之前需要将其注入控制器:

.controller('homeController', function($scope, $state) {

    $scope.onSwipeRight = function (id) {
        $state.go('blogdetail', { blogId: id });
    }

})

正如您所看到的,我已将id传递给我的onSwipeRight方法,因此我可以使用它转到另一个将其作为参数传递的状态。

<p on-swipe-right="onSwipeRight(blog.id)">{{blog.content}}</p>

可能你也需要改变你的状态:

  $stateProvider.state('blogdetail', {
      url: '/blogdetail/:blogId',
      templateUrl: 'blogdetail.html',
      controller: 'blogdetailController',
  });

正如您所看到的,我已将:blogId用作parameter

它必须与我们在这里使用的名称相匹配:

$state.go('blogdetail', { blogId: id });

如果您想在blogdetail控制器中读取该参数:

.controller('blogdetailController', function($scope, $stateParams){

    var id = $stateParams.blogId;

});

$stateParams服务将为您提供帮助。必须注射。

plunker可能会帮助您了解事情是如何运作的。