angular.js - ui-router 視圖嵌套時如何指定二級視圖顯示預設頁面?
我想大声告诉你
我想大声告诉你 2017-05-15 17:09:45
0
7
1161


具體的情況是這樣的,現在一個問題是:當跳到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'
       } 
    }
})`
我想大声告诉你
我想大声告诉你

全部回覆(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.go();

例如我設定了index 的router,然後設定一個 index.homepage

我會在例如使用者登入頁面後判斷如果登入成功直接跳到 index.homepage 當然 index.homepage中配置的template就是預設的頁面;

總值,在你需要的時候直接使用 $state.go()來指向某個路由就行。

伊谢尔伦

設定一下預設:

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

應該禁止跳到/user(添加属性 abstract:true )。沒有任何理由需要這樣做,直接跳到你想要的路徑就好了。

我想大声告诉你

多層級路由涉及到的 位址回傳問題怎麼解決

Ty80

題主有解決方法了嗎,同樣問題求解答...

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板