ionic之路由跳转

傷城~ 2022-07-16 23:08 449阅读 0赞

简介

ionic中比较常见的两个基于状态机(stateProvider)的页面跳转分别是

  • ui-sref
  • state.go

查看ui-sref的底层实现源码可以看到

  1. element.bind("click", function(e) {
  2. var button = e.which || e.button;
  3. if ( !(button > 1 || e.ctrlKey || e.metaKey || e.shiftKey || element.attr('target')) ) {
  4. var transition = $timeout(function() {
  5. // HERE we call $state.go inside of ui-sref
  6. $state.go(ref.state, params, options);
  7. });

ui-sref最终同样是选择了state.go的方式传递参数。因此两者之间的调用,应该是互通的。

基础准备

  1. 创建一个空白的项目,在body标签中增加下面的代码




    Back



  2. 在www文件夹下面创建templates文件夹,并创建list.html和detail.html

这里写图片描述

  1. 在app.js中,增加config的代码

    .config(function ($stateProvider, $urlRouterProvider) {

    1. // Ionic uses AngularUI Router which uses the concept of states
    2. // Learn more here: https://github.com/angular-ui/ui-router
    3. // Set up the various states which the app can be in.
    4. // Each state's controller can be found in controllers.js
    5. $stateProvider
    6. .state('list', {
    7. url: '/main',
    8. templateUrl: 'templates/list.html',
    9. controller: 'listCtrl'
    10. })
    11. .state('detail', {
    12. url: '/detail',
    13. params:{

    “id”:null},

    1. templateUrl: 'templates/detail.html',
    2. controller: 'detailCtrl'
    3. })
    4. $urlRouterProvider.otherwise('/main')

    });

其中,params,就是用来声明list向detail传递的参数的。如果多个变量,可以用隔开。

ui-sref跳转并传递参数

list.html中增加下面的代码,点击后跳转到detail页面

  1. <a ui-sref="detail({id:2})" id="list-button1" class=" button button-positive button-block ">Tap me!</a>

state跳转并传递参数

ListController中增加下面的代码,点击后跳转到detail页面

  1. //显示大图
  2. $scope.showBigImage = function (imageIndex) { //传递一个参数(图片的URl)
  3. $state.go('detail', {id: imageIndex}, {});
  4. };

然后在list中,创建一个元素,绑定ng-click = showBigImage(0) 即可

解析参数

在DetailController中,使用$stateParams获取参数

  1. console.log("detailCtrl id = ", $stateParams.id);

发表评论

表情:
评论列表 (有 0 条评论,449人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ionic

    一、路由:AngularJS和Ionic的异同 --------------------   路由的作用,简单的概括就是基于View和Url的对应关系,处理跳转页面。 

    相关 Vue

    所谓的router就是动态的往根里面挂载组件,而不是手动挂载。 vue路由配置的步骤: https://router.vuejs.org/ 1.安

    相关 【Vue】

    [【Vue】路由跳转][Vue] 路由跳转有几种方式,我用的最多的是$router.push的方法: 实践: 例如下面的页面,要求点详情跳转到详情页。 ![在这里

    相关 【Vue】

    路由跳转有几种方式,我用的最多的是$router.push的方法: 实践: 例如下面的页面,要求点详情跳转到详情页。 ![在这里插入图片描述][watermark_