加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > C语言 > 正文

ionic不同 view 跳转到同一个 view并保留历史的路由设计

发布时间:2020-12-15 01:19:24 所属栏目:C语言 来源:网络整理
导读:最近手上的 ionic 项目,从左边侧滑的交互方式换到了 tabs 的交互方式。以前的树形路由需要改造成网状的。于是开始在网上搜索有没有现成的技术方案,找了一圈下来发现,ionic 的社区里都是一些没法解决的回复。但是自己翻看 ui-router 的时候发现 guide 里面

最近手上的 ionic 项目,从左边侧滑的交互方式换到了 tabs 的交互方式。以前的树形路由需要改造成网状的。于是开始在网上搜索有没有现成的技术方案,找了一圈下来发现,ionic 的社区里都是一些没法解决的回复。但是自己翻看 ui-router 的时候发现 guide 里面是有网状路由设计的。(感觉废话多了点。。。)
看逻辑图

clipboard.png

上代码:
state 里面新加一个状态

.state("other",{
    url: "/other",abstract: true,controller: "OtherCtrl",template: "",onEnter: function($rootScope,fromStateServ) {
        fromStateServ.setState("other",$rootScope.fromState,$rootScope.fromParams);
    }
})

对应的controller

.controller("OtherCtrl",function($scope,$state,fromStateServ) {
    $scope.backNav = function() {
        var fromState = fromStateServ.getState("other");
        if (fromState.fromState !== undefined) {
            $state.go(fromState.fromState.name,fromState.fromParams);
        } else {
            //设置没有历史的时候,默认的跳转
            $state.go("app.xxx");
        }
    };
})

保留 history 的公共方法

.factory("fromStateServ",function() {
    return {
        data: {},setState: function(module,fromState,fromParams) {
            this.data[module] = {
                "fromState": fromState,"fromParams": fromParams
            };
        },getState: function(module) {
            return this.data[module];
        }
    };
})

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读