本文最后更新于:2016年11月30日 凌晨
                  
                
              
            
            
              
              最近手上的 ionic 项目,从左边侧滑的交互方式换到了 tabs 的交互方式。
以前的树形路由需要改造成网状的。
于是开始在网上搜索有没有现成的技术方案,找了一圈下来发现,ionic 的社区里都是一些没法解决的回复。
但是自己翻看 ui-router 的时候发现 guide 里面是有网状路由设计的。
看逻辑图
  
        
  
上代码:state 里面新加一个状态
| 12
 3
 4
 5
 6
 7
 8
 9
 
 | .state("other", {url: "/other",
 abstract: true,
 controller: "OtherCtrl",
 template: "<ion-nav-view></ion-nav-view>",
 onEnter: function($rootScope, fromStateServ) {
 fromStateServ.setState("other", $rootScope.fromState, $rootScope.fromParams);
 }
 })
 
 | 
对应的controller
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 
 | .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 的公共方法
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 
 | .factory("fromStateServ", function() {return {
 data: {},
 setState: function(module, fromState, fromParams) {
 this.data[module] = {
 "fromState": fromState,
 "fromParams": fromParams
 };
 },
 getState: function(module) {
 return this.data[module];
 }
 };
 })
 
 |