我想在向右滑动时进入博客列表的下一页。
我的观点是:
<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'})
}
但这不起作用。
答案 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可能会帮助您了解事情是如何运作的。