javascript - 无法将 Controller 添加到 Yeoman 生成的 Angular 项目

标签 javascript angularjs

我正在使用 Yeoman 脚手架创建 Angular 应用程序,但在添加 Controller 时遇到了一些问题。 about 和 main Controller 会自动添加并且工作正常。但是当我尝试为新 View 添加自己的 Controller 时,它只显示 {{name}}。感谢您的帮助!这是代码:

user.js(我要添加的那个)

'use strict';

/**
 * @ngdoc function
 * @name classSiteApp.controller:UserController
 * @description
 * # UserController
 * Controller of the classSiteApp
 */

angular.module('classSiteApp')
  .controller('UserController', function ($scope) {
        $scope.name='Hello';

  });

应用程序.js

'use strict';

/**
 * @ngdoc overview
 * @name classSiteApp
 * @description
 * # classSiteApp
 *
 * Main module of the application.
 */
angular
  .module('classSiteApp', [
    'ngAnimate',
    'ngCookies',
    'ngResource',
    'ngRoute',
    'ngSanitize',
    'ngTouch'
  ])
  .config(function ($routeProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl'
      })
      .when('/about', {
        templateUrl: 'views/about.html',
        controller: 'AboutCtrl'
      })
      .when('/user', {
        templateUrl: 'views/user.html',
        controller: 'UserController'
      })
      .otherwise({
        redirectTo: '/'
      });
  });

主要.js

'use strict';

/**
 * @ngdoc function
 * @name classSiteApp.controller:MainCtrl
 * @description
 * # MainCtrl
 * Controller of the classSiteApp
 */
angular.module('classSiteApp')
  .controller('MainCtrl', function ($scope) {
        $scope.name='Hello';

  });

index.html

    <!doctype html>
<html class="no-js">
  <head>
    <meta charset="utf-8">
    <title></title>
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width">

    <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css" />

    <link rel="stylesheet" href="styles/main.css">
    <!-- endbuild -->
  </head>
  <body ng-app="classSiteApp">

    <div class="header">
      <div class="navbar navbar-default" role="navigation">
        <div class="container">
          <div class="navbar-header">

            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#js-navbar-collapse">
              <span class="sr-only">Toggle navigation</span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
            </button>

            <a class="navbar-brand" href="#/">MrCooleyMathMan</a>
          </div>

          <div class="collapse navbar-collapse" id="js-navbar-collapse">

            <ul class="nav navbar-nav navbar-right">
              <li><a ng-href="#/">Courses</a></li>
              <li><a ng-href="#/user">Create Account</a><li>
              <li><a href="#/about">Login</a></li>
            </ul>
          </div>
        </div>
      </div>
    </div>

    <div class="container">
    <div ng-view=""></div>
    </div>

    <div class="footer">
      <div class="container">
        <div class="col-sm-6 ">
          <p><span class="glyphicon glyphicon-heart"></span> Thanks for visting my page</p>
        </div>
        <div class="col-sm-6">
          <ul class="list-unstyled">
            <li><strong>Matthew Cooley</strong></li>
            <li><a href="mailto:mcooley@dtechhs.org">mcooley@dtechhs.org</a></li>
          </ul>
        </div>
      </div>
    </div>


    <!-- Google Analytics: change UA-XXXXX-X to be your site's ID -->
     <script>
       !function(A,n,g,u,l,a,r){A.GoogleAnalyticsObject=l,A[l]=A[l]||function(){
       (A[l].q=A[l].q||[]).push(arguments)},A[l].l=+new Date,a=n.createElement(g),
       r=n.getElementsByTagName(g)[0],a.src=u,r.parentNode.insertBefore(a,r)
       }(window,document,'script','//www.google-analytics.com/analytics.js','ga');

       ga('create', 'UA-XXXXX-X');
       ga('send', 'pageview');
    </script>

    <!-- build:js(.) scripts/vendor.js -->
    <!-- bower:js -->
    <script src="bower_components/jquery/dist/jquery.js"></script>
    <script src="bower_components/angular/angular.js"></script>
    <script src="bower_components/bootstrap/dist/js/bootstrap.js"></script>
    <script src="bower_components/angular-animate/angular-animate.js"></script>
    <script src="bower_components/angular-cookies/angular-cookies.js"></script>
    <script src="bower_components/angular-resource/angular-resource.js"></script>
    <script src="bower_components/angular-route/angular-route.js"></script>
    <script src="bower_components/angular-sanitize/angular-sanitize.js"></script>
    <script src="bower_components/angular-touch/angular-touch.js"></script>
    <!-- endbower -->
    <!-- endbuild -->

        <!-- build:js({.tmp,app}) scripts/scripts.js -->
        <script src="scripts/app.js"></script>
        <script src="scripts/controllers/main.js"></script>
        <script src="scripts/controllers/about.js"></script>
        <!-- endbuild -->
</body>
</html>

最佳答案

我认为您需要在 index.html 的末尾添加您的 user.js 文件作为脚本引用,如下所示:

    <script src="scripts/app.js"></script>
    <script src="scripts/controllers/main.js"></script>
    <script src="scripts/controllers/about.js"></script>
    <script src="your/path/to/user.js"></script>

关于javascript - 无法将 Controller 添加到 Yeoman 生成的 Angular 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30532500/

相关文章:

javascript - ngInit 无法与 AngularJS 和 Django 一起正常工作

javascript - dropzone 无法上传一些图片(内部服务器错误 500)

javascript - 简单堆叠行图

javascript - 实现 JavaScript 函数 areDifferent(oldValue, newValue) 以类似人类的方式比较空值

javascript - Angular 服务和观察变量

javascript - 未知提供者 : toasterProvider <- toaster <- RugHttpInterceptor <- $http <- ng1UIRouter

javascript - 获取1课内2课的内容

javascript - 亚马逊Echo开发: ways to set shouldEndSession

javascript - AngularJS - 在另一个 div 中访问过滤后的数据

javascript - Angular 数据-前缀属性访问