2016-08-18 75 views
-2

我有2个状态:角UI路由器状态迷糊(关闭)

$stateProvider 
    .state('page-0', { 
     url: '/', 
     templateUrl: 'modules/page-0/page-zero.html', 
     controller:'page0Controller' 
    }) 
    .state('page-1', { 
     url: '/:url', 
     templateUrl: 'modules/page-1/page-one.html', 
     controller:'page1Controller' 
    }) 

当我去/它去page-0一个短暂的时间,然后进到page-1。如果没有params停留在page-0,我如何使/?当我去/something它应该继续到page-1

谢谢。

UPDATE

对不起!其实上面的代码工作得很好,我刚刚发现我的逻辑有一个小故障。我在我的page-0控制器上做了$state.go()。真的对不起。

+0

这些真实的名称是:“page-0”还是“page-1”?,因为我相信这些名称是无效的。尝试使用'page0'和'page1' – radyz

+0

他们正在以这种方式工作。 @radyz – CENT1PEDE

+0

将我的评论转换为进一步帮助的答案:) – radyz

回答

-1

两种状态基本上是相同的状态page-0相同page-1不带参数,所以你应该做的是合并这两个状态page和默认值添加到url参数这样

.state('page', { 
     url: '/:url', 
     templateUrl: 'modules/page-1/page-one.html', 
     controller:'pageController', 
     params:{ 
      url:null 
     } 
}) 

和在pageController检查如果参数null或不喜欢这个

angular.module('myApp').controller(function($stateParams){ 
    if($stateParams.url == null){ 
    //do something ; pretend you are in page-0 
    }else{ 
    //do something ; pretend you are in page-1 
    } 
}); 

UPDATE:这个问题第一次是正确的,但我的回答是,那些问题描述的问题同样存在。

+0

不,“page-0”和“page-1”是两种不同的状态。 – CENT1PEDE

+0

你的答案只是造成更多的困惑。只是阅读更新。 – CENT1PEDE

+0

@ TheGreenFoxx我的答案对于第一个问题是正确的,为什么我会在他改变他的问题时就投票。 – Miqe