使用Angular和Node进行路由

时间:2013-08-26 20:00:33

标签: javascript node.js angularjs

我正在学习Node和Angular。作为我学习的一部分,我目前正在尝试设置一个有三页的基本应用程序。为了做到这一点,我依赖于enter link description here提供的文档。

我的项目目前的结构如下:

/app
  /views
    page1.html
    page2.html
    page3.html
  /resources
    /javascript
      angular-1.0.7.min.js
      controllers.js
  index.html

我在index.html中的代码非常简单。它看起来像这样:

<!doctype html>
<html ng-app="ngView">
  <head>
    <title></title>
    <script type="text/javascript" src="/resources/javascript/angular-1.0.7.min.js"></script>
    <script type="text/javascript" src="/resources/javascript/controllers.js"></script>
  </head>

  <body>
    <div ng-controller="Index">
        <a href="page1">Page 1</a>
        <a href="page2">Page 2</a>
        <a href="page3">Page 3</a>

        <div ng-view></div>
    </div>        

    <script type="text/javascript">
        angular.module('ngView', [], function ($routeProvider, $locationProvider) {
            $routeProvider.
                when('/page1', { templateUrl: 'app/views/page1.html', controller: Page1Controller }).
                when('/page2', { templateUrl: 'app/views/page2.html', controller: Page2Controller }).
                when('/page3', { templateUrl: 'app/views/page3.html', controller: Page3Controller }).
                otherwise({ redirectTo: 'app/views/page1' });

            $locationProvider.html5Mode(true);
        });
    </script>
  </body>
</html>

出于某种原因,我的观点并没有像他们在示例中那样出现。我设置错误了什么?

1 个答案:

答案 0 :(得分:0)

您是否正在从节点服务器向角度转发正确的请求?如果使用express,这可能看起来像这样:

router.all('/*', function(req, res) {
    res.sendfile('index.html');
});