最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - AngularJS cannot find module with latest RequireJS - Stack Overflow

programmeradmin5浏览0评论

I just upgraded to RequireJS 2.1.1 - I have an AngularJS app I'm loading with it. I get "No module: app" from angular before the main define runs.

It works fine on RequireJS 2.0.1. Any idea what might have changed?

Here's is public/index.html

<!doctype html>
<html lang="en" ng-app="app">
<head>
  <meta charset="utf-8">
  <title>AngularJS</title>
  <link rel="stylesheet" href="css/style.css"/>
  <script data-main="main" src="requirejs/require.js"></script>
</head>
<body>
  <div ng-view></div>
</body>
</html>

And here is public/main.coffee

require.config

  shim:
    underscore: exports: '_'
    ngResource:
      exports: 'angular'
      deps: ['angular']
    angular:
      exports: 'angular'
      deps: ['jquery']
    jquery: exports: 'jQuery'

  paths:
    underscore: 'underscore/index'
    angular: 'AngularJS/angular'
    ngResource: 'angular-modules/resource'
    jquery: 'jquery/jquery'

# Bootstrap angularjs using requirejs. 
define [], (require) ->
  angular = require 'angular'
  ngResource = require 'ngResource'

  TestCtrl = require 'controllers/TestCtrl'

  ## ROUTER ###########
  app = angular.module 'app', ['ngResource'], ($routeProvider) ->
    $routeProvider.when '/test', {templateUrl: 'partials/test.html', controller: TestCtrl}
    $routeProvider.otherwise {redirectTo: '/test'}

  return app

I just upgraded to RequireJS 2.1.1 - I have an AngularJS app I'm loading with it. I get "No module: app" from angular before the main define runs.

It works fine on RequireJS 2.0.1. Any idea what might have changed?

Here's is public/index.html

<!doctype html>
<html lang="en" ng-app="app">
<head>
  <meta charset="utf-8">
  <title>AngularJS</title>
  <link rel="stylesheet" href="css/style.css"/>
  <script data-main="main" src="requirejs/require.js"></script>
</head>
<body>
  <div ng-view></div>
</body>
</html>

And here is public/main.coffee

require.config

  shim:
    underscore: exports: '_'
    ngResource:
      exports: 'angular'
      deps: ['angular']
    angular:
      exports: 'angular'
      deps: ['jquery']
    jquery: exports: 'jQuery'

  paths:
    underscore: 'underscore/index'
    angular: 'AngularJS/angular'
    ngResource: 'angular-modules/resource'
    jquery: 'jquery/jquery'

# Bootstrap angularjs using requirejs. 
define [], (require) ->
  angular = require 'angular'
  ngResource = require 'ngResource'

  TestCtrl = require 'controllers/TestCtrl'

  ## ROUTER ###########
  app = angular.module 'app', ['ngResource'], ($routeProvider) ->
    $routeProvider.when '/test', {templateUrl: 'partials/test.html', controller: TestCtrl}
    $routeProvider.otherwise {redirectTo: '/test'}

  return app
Share Improve this question edited Feb 25, 2013 at 23:05 Vitalii Korsakov 47.6k20 gold badges75 silver badges92 bronze badges asked Oct 22, 2012 at 16:10 Sean Clark HessSean Clark Hess 16.1k13 gold badges54 silver badges102 bronze badges
Add a comment  | 

2 Answers 2

Reset to default 22

You should manually bootstrap angular and remove the ng-app attribute in that case since the module is not available on dom ready:

angular.bootstrap document, ['app']

at the end of your define function

You need to add this js file: angular-resource.js

发布评论

评论列表(0)

  1. 暂无评论