angular.js - ui-router 视图嵌套时如何指定二级视图显示默认页面?
我想大声告诉你
我想大声告诉你 2017-05-15 17:09:45
0
7
1130


具体的情况是这样的,现在一个问题是:当跳转到user页面时,右边的uiview是为空的,要点击了左侧的导航才能插入模板,如何在路由中设置二级视图的默认显示页面呢?
上代码:
`$stateProvider

.state('user', {
    url: '/user',
    views: {
        '': {
           templateUrl: 'public/front/temphtml/usercenter/userindex.html' 
        }
    }  
})
.state('user.a', {
    url: '/a',
    views: {
       'content@user': {
           templateUrl: 'public/front/temphtml/usercenter/a.html',
           controller: 'userCtrl'
       } 
    }
})
.state('user.b', {
    url: '/b',
    views: {
       'content@user': {
           templateUrl: 'public/front/temphtml/usercenter/b.html',
           controller: 'userCtrl'
       } 
    }
})`
我想大声告诉你
我想大声告诉你

Antworte allen(7)
阿神

已测试,可以解决你的问题。
.state('user', {

url: '/user',
views: {
    '': {
       templateUrl: 'public/front/temphtml/usercenter/userindex.html' ,
       controller: function($state){
            $state.go('user.a');//默认显示第一个tab
        }
    }
}  

})
.state('user.a', {

url: '/a',
views: {
   'content@user': {
       templateUrl: 'public/front/temphtml/usercenter/a.html',
       controller: 'userCtrl'
   } 
}

})
.state('user.b', {

url: '/b',
views: {
   'content@user': {
       templateUrl: 'public/front/temphtml/usercenter/b.html',
       controller: 'userCtrl'
   } 
}

})`

阿神
.state('user', {
    //我觉得你进到user页面直接设置你需要默认显示页面的url就好了
    url: '/a',
    views: {
        '': {
           templateUrl: 'public/front/temphtml/usercenter/a.html' 
        }
    }  
})
.state('user.a', {
    url: '/a',
    views: {
       'content@user': {
           templateUrl: 'public/front/temphtml/usercenter/a.html',
           controller: 'userCtrl'
       } 
    }
})
.state('user.b', {
    url: '/b',
    views: {
       'content@user': {
           templateUrl: 'public/front/temphtml/usercenter/b.html',
           controller: 'userCtrl'
       } 
    }
})`
大家讲道理

我一般设置一个默认页面会在某些判断条件下执行 $state.go();

比如我设置了index 的router,然后设置一个 index.homepage

我会在比如用户登录页面后判断如果登录成功直接跳转到 index.homepage 当然 index.homepage中配置的template就是默认的页面;

总值,在你需要的时候直接使用 $state.go()来指向某个路由就行。

伊谢尔伦

设置一下默认:

app.config(function($urlRouterProvider){
    $urlRouterProvider.when('', '/index');
});
大家讲道理

应该禁止跳转到/user(添加属性 abstract:true )。没有任何理由需要这样做,直接跳转到你想要的路径就好了。

我想大声告诉你

多级路由涉及到的 地址返回问题怎么解决

Ty80

题主有解决方法了吗,同样问题求解答...

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!