2013-04-11 7 views
7

In meiner Rails App habe ich ui-bootstrap-0.2.0.js im Verzeichnis vendor/assets/javascripts. Ich habe die Datei in meiner application.js Datei benötigt.Wie lade ich das AngularJS-Bootstrap-Modul korrekt?

Ich erhalte eine Fehlermeldung, wenn ich die Bootstrap als meine Abhängigkeit in dieser Linie angeben, angular.module('myApp',['ui.bootstrap']);, wie hier dazu aufgefordert werden, http://angular-ui.github.io/bootstrap/

Chrome ein Uncaught ReferenceError: angular is not defined an diesem definierten Modul erkennt: angular.module("ui.bootstrap", ["ui.bootstrap.accordion", ...]) im ui-bootstrap-0.2.0.js.

angular.js fängt jedoch einen Fehler No module:ui.bootstrap. So scheint es, dass diese beiden Javascript-Dateien einander nicht sehen können. Gibt es dafür eine Lösung?

+1

Haben Sie umfassen 'angular.js' * vor * Bootstrap? –

+0

Ja, ich habe sichergestellt, dass angular.js vor dem Bootstrap geladen wurde. – user1002563

+0

Ich kenne die Asset-Pipeline von Rails nicht sehr gut. Werden die Dateien asynchron angefordert oder generiert Rails die resultierenden 'script' Tags? Das heißt, gibt es endgültige Ausgabe, um zu sehen, was vor sich geht? –

Antwort

2

Hier ist, wie ich habe es in meinem Projekt:

<script type="text/javascript" src="libs/jquery-1.9.1.min.js"></script> 
<script type="text/javascript" src="libs/jquery-ui-1.10.2.custom.min.js"></script> 

<script type="text/javascript" src="libs/angular.min.js"></script> 
<script type="text/javascript" src="libs/angular-ui.min.js"></script> 
<script type="text/javascript" src="libs/angular-resource.min.js"></script> 

<script type="text/javascript" src="libs/ui-bootstrap-tpls-0.2.0.min.js"></script> 

<script type="text/javascript" src="js/app.js"></script> 
<script type="text/javascript" src="js/services.js"></script> 
<script type="text/javascript" src="js/directives.js"></script> 
<script type="text/javascript" src="js/filters.js"></script> 
<script type="text/javascript" src="js/controllers.js"></script> 
<script type="text/javascript" src="js/utils.js"></script> 

Und das ist, wie ich meine Anwendungsmodul gesetzt:

var app = angular.module('myapp', ['ui.bootstrap','ngResource']); 
+0

Ich werde es wahrscheinlich manuell machen, aber ich würde es vorziehen, dass ich es in meiner Rails application.js mit '' '// require bootstrap_file''' benötige, dann lade alle meine js-Dateien, indem ich die Anwendung lade .js – user1002563

+1

Könnte dieser Beitrag Ihnen helfen? http://stackoverflow.com/questions/6149961/rails-3-1-asset-pipeline-and-manually-ordered-javascript-requires – jpmorin