如何在多个页面的MEAN应用程序中处理路由

时间:2014-09-14 06:50:54

标签: javascript node.js angularjs express angular-ui-router

我想使用网址http://localhost:3000/users/123访问我的管理员端,我使用Angular UI-Router模块进行以下路由:

.state('users', {
    url: '/users/:id',
    views: {
        '': {
            templateUrl: 'partials/admin/index.html',
            controller: 'UserController'
        },
        'sidebar@users': {
            templateUrl: 'partials/admin/sidebar.html',
            controller: 'UserController'
        },
        'content@users': {
            templateUrl: 'partials/admin/content.html',
            controller: 'UserController'
        },
        //other named views
    }

})

访问http://localhost:3000/users/123通过NodeJS给我404错误。

同时,我可以使用以下配置通过前端的http://localhost:3000/questions/342359访问<a ui-sref="questions({ id: {{qid}} })">Ask</a>网址:

.state('questions', {
    url: '/questions/:id',
    views: {
        '': {
            templateUrl: 'partials/questions.html',
            controller: 'QuestionController'
        },
        //other named views
    }
})

以下是前端和管理员端的express.Router()

/* GET front end */
router.get('/', function(req, res) {
  res.render('index', { title: 'Front' });
});

/* GET admin end */
router.get('/users', function(req, res) {
    res.render('users', { title: 'Admin' });
});

index.ejsusers.ejs都包含<div ui-view></div><div ui-view></div>中的index.ejspartials/index.html中占用<div ui-view></div>users.ejs中的partials/admin/index.html占用partials/index.htmlpartials/admin/index.htmlpartials/admin/index.html都有一些命名视图。

就像我在我的应用程序中有2个页面(前端和管理端)以及我想要表现得像单页应用程序的页面,我为每个页面(前端和管理端)都有部分内容。

有人可以帮助了解我如何在不收到404错误的情况下访问<!DOCTYPE html> <html lang="en" xmlns:ng="http://angularjs.org" id="ng-app" ng-app="myApp"> <head lang="en"> <meta charset="UTF-8"> <title><%title%></title> <!-- CSS files for front end to make front end look pretty --> </head> <body> <div ui-view></div> <!-- JavaScript files for front end to make front end look pretty and other Angular specific stuff --> </body> </html>

修改更多代码

index.ejs(前端)

<div class="main">
    <div class="container">
        <div class="row margin-bottom-40">
            <div class="col-md-12 col-sm-12">
                <div class="content-page">
                    <div class="row">
                        <div ui-view="foo"></div>
                        <div ui-view="bar"></div>
                    </div>
                </div>

            </div>
        </div>
    </div>
</div>

/partials/index.html(前端)

<!DOCTYPE html>
<html lang="en" xmlns:ng="http://angularjs.org" id="ng-app" ng-app="myApp">
<head lang="en">
    <meta charset="UTF-8">
    <title><%title%></title>
    <!-- CSS files for admin end to make amdin end look pretty -->
</head>
<body>

<div ui-view></div>

<!-- JavaScript files for admin end to make admin end look pretty and other Angular specific stuff -->
</body>
</html>

users.ejs(管理员结束)

<div class="page-container">
    <div ui-view="sidebar"></div>
    <div ui-view="content"></div>
</div>

/partials/admin/index.html(管理员结束)

{{1}}

0 个答案:

没有答案