angularjs - 带有 angularJS 的简单 requireJS - Angular 未定义

标签 angularjs requirejs

我是 requireJS 的新手,我想启动并运行一个简单的入门“hello worldish”项目。我错过了一些东西,因为我得到 angular is not definedGreetCtrl 时作为 JS 错误尝试加载。

索引.html:

<!DOCTYPE html>
<html ng-app="ReqApp" ng-controller="GreetCtrl">
  <body>
    <h1>{{greeting}}!</h1>
    <script src="assets/require/require.js" data-main="assets/require/main"></script>
  </body>
</html>

主要.js:
require.config({
    // alias libraries paths
  paths: {
    'domReady':      'domReady',
    'angular':       '../../vendor/angular/angular.min',
    'GreetCtrl':     '../../src/app/modules/GreetCtrl',
    'app':           '../../src/app/app'
  },
  // angular does not support AMD out of the box, put it in a shim
  shim: {
    'angular': {
      exports: 'angular'
    }
  },
  // kick start application
  deps: ['./bootstrap']
});

bootstrap .js:
define([
    'require',
    'angular',
    'app'
], function (require, ng) {
    'use strict';

    require(['domReady!'], function (document) {
        ng.bootstrap(document, ['ReqApp']);
    });
});

应用程序.js:
define([
  'angular',
  'GreetCtrl'
], function (ng) {
  'use strict';

  return ng.module('ReqApp', [
    'ReqApp.GreetCtrl'
  ]);
});

最后,GreetCtrl.js:
angular.module( 'ReqApp.GreetCtrl', [])
.controller( 'GreetCtrl', function GreetCtrl ($scope) {
  $scope.greeting = "greetings puny human";
});

根据 Firebug ,GreetCtrl.js 的第 1 行抛出 angular is not defined 的错误.我在这里缺少什么?

提前致谢!!

最佳答案

你还没告诉GreetCtrl这取决于 angular因此它是 undefined .尝试更改 GreetCtrl像这样

define(['angular'], function(angular){
    angular.module( 'ReqApp.GreetCtrl', [])
    .controller( 'GreetCtrl', function GreetCtrl ($scope) {
         $scope.greeting = "greetings puny human";
    });
});

关于angularjs - 带有 angularJS 的简单 requireJS - Angular 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19575410/

相关文章:

angularjs - 如何在 $state angularjs 中的 Controller 之间使用 ui 路由器传递对象

javascript - AMD、requirejs - 希望确保某些内容始终最后执行

javascript - CommonJS 规范中概述的 define() 协议(protocol)给我带来了什么?

javascript - 主干+RequireJS "define is not defined"

javascript - 是否可以从 require 优化器构建配置中排除一个模块,但可以单独优化该模块及其依赖项?

angularjs - Express.js 与 Foundation for Apps

css - 两个输入文件同时设置为禁用

javascript - 自定义 Handlebars 助手在没有参数的情况下无法解析

javascript - AngularJS - 使用 Http Web 服务器渲染 View 时如何禁用目录浏览/列表

javascript - ng-model 内部 radio 输入刷新