使用角度js和expressjs进行路由

时间:2015-01-22 15:40:46

标签: javascript angularjs node.js express

我正在尝试使用express和angularjs开始一个项目。我正在关注this指南。 首先,运行localhost:3000,我成功地在views目录中加载我的index.jade文件。 index.jade

extends layout

block content
    div
        ng-view

    include footerjs

footerjs.jade

script(src="/javascripts/angular.min.js")
script(src="/javascripts/angular-route.js")
script(src="/javascripts/angular-resource.js")
script(src="/javascripts/app.js")
script(src="/javascripts/task.js")

views目录有一个名为partials的文件夹。在这个文件夹里面我添加了两个模板。 " task.jade"和#34; landing.jade"。

我的app.js

var mainApp = angular.module('mainApp', ['ngRoute', 'taskApp', "ngResource", 'ui.router' ]);

mainApp.config(['$routeProvider', '$locationProvider',function(routeProvider, locationProvider) {
    locationProvider.html5Mode(true);

    routeProvider
        .when('/', {
            templateUrl: 'partials/landing',
            controller: 'taskController'
        }).
        when('/task', {
            templateUrl: 'partials/task',
            controller: 'taskController'
        }).
        otherwise({redirectTo: '/'});
}]);

我做了一条明确的路线:

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

我无法路由任何部分。我在初始时遇到了布局,在尝试路由/任务时遇到错误404。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您应该在templateUrl中包含文件扩展名:

routeProvider
        .when('/', {
            templateUrl: 'partials/landing.jade',
            controller: 'taskController'
        }).
        when('/task', {
            templateUrl: 'partials/task.jade',
            controller: 'taskController'
        }).
        otherwise({redirectTo: '/'});