0

我正在使用 MEAN 建立一个单页网站,我尝试了多个教程并搜索了很多示例,但我似乎无法让它工作。我正在使用angular-routing我的模板,但是当我添加一个控制器时 - 模板没有显示。没有任何错误。

应用程序.js

angular.module('sampleApp', ['frontPageCtrl','ngRoute', 'appRoutes']);

appRoutes.js

angular.module('appRoutes', [])
.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {

    $routeProvider 

        .when('/', {
            templateUrl: 'views/home.html',
            controller: 'frontController'
        })
        .otherwise({
            redirectTo: '/'
        });


    $locationProvider.html5Mode(true);
    }]);

frontPageController.js

angular.module('frontPageCtrl', [])
.controller('frontController', function($scope, $http) {
});

在我的index.html文件中,我将所有三个文件都包含在app.js第一个和之后的角度包含中。

编辑:

这是我的 index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<base href="/">

  <link rel="stylesheet" href="libs/bootstrap/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="libs/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="css/frontPage.css">
<link rel="stylesheet" href="libs/bootstrap/"

<!-- JS -->
<script src="libs/angular/angular.min.js"></script>
<script src="libs/angular-route/angular-route.min.js"></script>

<script src="js/app.js"></script>
<script src="js/appRoutes.js"></script>
<script src="js/controllers/frontPageController.js"></script>
</head>
<body ng-app="sampleApp" ng-controller="frontController">
<div id="container">

<div id="content">
    <div ng-view></div>

</div>
</div>
</body>
</html>
4

2 回答 2

2

检查事项

  1. 您是否在您的主登录页面中添加了 ng-view
  2. 您是否在主登录页面中添加了 ng-app="sampleApp"。
  3. 在控制器中放置断点只是为了确保它进入那里
  4. 检查网络选项卡并确保所有 javascript 文件正在加载

如果这回答了您的问题,请不要忘记将其标记为答案:)

于 2016-02-23T10:44:26.060 回答
1

据我查看您的代码后所见,您的依赖注入是错误的。在文件夹中查看 、appRoutes.js和您需要的更改。app.jsindex.htmlhome.htmlfrontControllerviews

你的 app.js 应该是:

angular.module('appRoutes', []);

你的 appRoutes.js 应该是:

    angular.module('sampleApp', ['frontPageCtrl','ngRoute', 'sampleApp'])
    .config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {

        $routeProvider 

            .when('/', {
                templateUrl: 'views/home.html',
                controller: 'frontController'
            })
            .otherwise({
                redirectTo: '/'
            });


        }]);

还有你的frontPageController.js:

    angular.module('frontPageCtrl', [])
    .controller('frontController', function($scope, $http) {
    });

并且,在您的 Index.html 中:

<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="UTF-8">
      <base href="/">
      <link rel="stylesheet" href="libs/bootstrap/dist/css/bootstrap.min.css">
      <link rel="stylesheet" href="libs/font-awesome/css/font-awesome.min.css">
      <link rel="stylesheet" href="css/frontPage.css">
      <link rel="stylesheet" href="libs/bootstrap/"
      <!-- JS -->
      <script src="libs/angular/angular.min.js"></script>
      <script src="libs/angular-route/angular-route.min.js"></script>
      <script src="js/appRoutes.js"></script>
      <script src="js/app.js"></script>
      <script src="js/controllers/frontPageController.js"></script>
   </head>
   <body ng-app="sampleApp">
      <div id="container">
         <div id="content">
            <div ng-view></div>
         </div>
      </div>
   </body>
</html>

而且,您home.html应该拥有控制器frontController。默认情况下,如果不使用,您home.html将使用 。frontControllerng-controller="frontController"

<div ng-controller="frontController">

这是工作的 plunker:http ://plnkr.co/edit/ohe4U0Am83U5Hj05HOIv?p=preview

于 2016-02-23T10:53:24.293 回答