2012-10-22 13 views
8

Ich habe gerade ein Upgrade auf RequireJS 2.1.1 durchgeführt - Ich habe eine AngularJS-App, die ich damit lade. Ich bekomme "No modul: app" von eckig, bevor die Hauptdefinition läuft.AngularJS kann kein Modul mit dem letzten RequireJS finden

Es funktioniert gut auf RequireJS 2.0.1. Irgendeine Idee was sich geändert haben könnte?

Hier ist öffentlich/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> 

Und hier ist öffentlich/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 

Antwort

22

Sie sollten manuell Winkel Bootstrap und die ng-App-Attribut in diesem Fall, da das Entfernen Modul ist auf dom nicht verfügbar bereit:

angular.bootstrap document, ['app'] 

am Ende Ihrer definieren Funktion

+0

Interessant. Es wirft immer noch keinen Modulfehler auf, aber die App wird anschließend geladen. Sieht immer noch komisch aus. Weißt du was sich zwischen 2.0 und 2.1 geändert hat? –

+0

Wenn ich auch die NG-App-Deklaration auf dem HTML-Tag entfernen, funktioniert es ohne Fehler –

+0

Sie haben Recht, ich werde das zur Antwort hinzufügen – Guillaume86

-1

Sie müssen diese js-Datei hinzufügen: angular-resource.js

Verwandte Themen