Angular noob + Yeoman:'app'未定义

时间:2014-04-27 03:10:01

标签: angularjs

我建立了一个待办事项列表,您可以在此处看到:https://github.com/EdmundMai/angular_todolist

在我的控制器中,我可以在全球任何地方访问toDoListApp

然而,现在我和Yeoman开始了一个新项目,我有相同的设置:

app.js:

'use strict';

var app = angular.module('angNewsApp', [
    'ngCookies',
    'ngResource',
    'ngSanitize',
    'ngRoute'
  ]);


app.config(function ($routeProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'views/posts.html',
        controller: 'PostsCtrl'
      })
      .otherwise({
        redirectTo: '/'
      });
  });

posts.js:

'use strict';

app.controller('PostsCtrl', function($scope) {
});

posts.html:

<p>{{hey}}zzzzz</p>

然而,jshint抱怨并且我的观点没有显示。

app/scripts/controllers/posts.js
  line 3  col 1   'app' is not defined.
  line 3  col 44  '$scope' is defined but never used.

为什么我不能使用app?

更新

我的index.html的包含标签:

<!-- 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-resource/angular-resource.js"></script>
<script src="bower_components/angular-cookies/angular-cookies.js"></script>
<script src="bower_components/angular-sanitize/angular-sanitize.js"></script>
<script src="bower_components/angular-route/angular-route.js"></script>
<!-- endbower -->
<!-- endbuild -->

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

我该怎么办?

1 个答案:

答案 0 :(得分:1)

这是因为您已将JavaScript分成两个文件。您需要将它带到一个文件。

  1. 您可以使用--out选项进行编译以获取单个文件。
  2. 将所有文件包含在脚本标记中(顺序很重要)。
  3. 使用像RequireJS这样的模块加载器。