AngularJS添加控制器

时间:2016-02-23 10:34:33

标签: angularjs angular-routing angular-directive angular-template angular-controller

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

app.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>

2 个答案:

答案 0 :(得分:2)

要检查的事项

  1. 您是否在主要着陆页中添加了ng-view
  2. 您是否添加了ng-app =&#34; sampleApp&#34;在主要登陆页面。
  3. 在控制器中放置断点,以确保它进入那里
  4. 检查网络标签,确保所有javascript文件都在加载
  5. 如果这回答了你的问题,请不要忘记将其标记为答案:)

答案 1 :(得分:1)

在查看代码后,我可以看到,您的依赖注入是错误的。查看appRoutes.jsapp.jsindex.html中的更改,home.html文件夹中frontController需要views

你的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,则frontController将使用ng-controller="frontController"

<div ng-controller="frontController">

以下是工作人员:http://plnkr.co/edit/ohe4U0Am83U5Hj05HOIv?p=preview