在Angular UI路由器中嵌套ui-view

时间:2015-07-30 03:20:04

标签: angularjs angular-ui-router pug

main.jade(相关部分)

div(ui-view="core")

分音/ dashboard.jade

#dashboard(ng-controller="dashboardController")
    #main-panel(ui-view="mainPanel")
    #side-panel

    nav#top-nav

routes.js

app.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', function($stateProvider, $urlRouterProvider, $locationProvider) {

    // loads url from the index
    $urlRouterProvider.otherwise('/');

    $locationProvider.html5Mode(true);

    $stateProvider
        .state('splash', {

        })
        .state('dashboard', {
            abstract: true,
            url:'/dashboard',
            views: {
                'core' : {
                    templateUrl: '/partials/dashboard'
                },
                'mainPanel' : {
                    templateUrl: '/partials/calendar'
                }
            }
        })

}]);

有没有办法渲染ui-view ="核心"以及ui-view =" mainPanel"哪个是内核?

作为参考,这就是我如何配置部分以使用jade

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res) {
    res.render('main', { 
        title: 'Express' 
    });
});

router.get('/partials/:name', function (req, res) { 
    var name = req.params.name;
    res.render('partials/' + name);
});

module.exports = router;

1 个答案:

答案 0 :(得分:1)

你不能拥有"嵌套" ui-views在一个级别(一个州)。因为ui-view内容被提供的模板替换 要使mainPanel位于core内,它应该是嵌套状态模板的一部分。

.state('dashboard.main', {
    url:'/main',
    views: { mainPanel : ... }
}

dashboard的模板应包含ui-view="mainPanel"