2014-04-16 18 views
6

Ich versuche eine Anwendung zu erstellen und benutze Bootstrap Ui, um zum Beispiel das Akkordeon und den Datepicker zu benutzen. Wenn ich jedoch versuche, Routing über das ng-route-Modul hinzuzufügen, funktioniert der ui-Teil nicht mehr.Angular: Routing während Ui Bootstrap

Ohne die Routing-Teil sieht die Definition meiner ng-App wie folgt:

var myApp= angular.module('myApp', ['ui.bootstrap']); 

Im angular tutorial sie sagen, das Routing, was ich die Definition ng-App wie diese setzen müssen verwenden:

var myApp= angular.module('myApp', [ 
     'ngRoute', 
     'Controllers' 
    ]); 

So kombiniert es sollte wie folgt aussehen:

var myApp = angular.module('myApp', [ 
     'ngRoute', 
     'Controllers', 
     'ui.bootstrap' 
    ]); 

Oder ein m ich falsch? Weil es so nicht funktioniert.

Die Datei index.html sieht wie folgt aus:

!DOCTYPE html> 
<html ng-app='myApp'> 

    <head> 
    <script src="lib/angular/angular.js"></script> 
    <script src="lib/angular/angular-route.js"></script> 
    <script src="js/app.js"></script> 
    <script src="js/controllers2.js"></script> 
    <script src="ui-bootstrap-tpls-0.9.0.js"></script> 

    <link rel="stylesheet" href="css/bootstrap-3.1.1-dist/css/bootstrap.css"> 
    <link rel="stylesheet" href="css/app.css">> 
    </head> 

    <body> 
    <div ng-view></div> 
    </body> 

</html> 

controllers2.js definiert keine Controller noch:

var Controllers= angular.module('Controllers', []); 

    Controllers.controller('firstCtrl', ['$scope', '$http','$routeParams', 
     function ($scope, $http) { 

     }]); 

     Controllers.controller('secondCtrl', ['$scope', '$routeParams', 
     function($scope, $routeParams) { 
     }]); 

app.js nimmt die Routing-Teil:

var myApp = angular.module('myApp', [ 
'ngRoute', 
'Controllers', 
'ui.bootstrap' 

]); 
myApp.config(['$routeProvider', 
function($routeProvider) { 
$routeProvider. 
when('/first', { 
templateUrl: 'first.html', 
controller: 'firstCtrl' 
}). 
when('/second', { 
templateUrl: 'second.html', 
controller: 'secondCtrl' 
}). 
otherwise({ 
redirectTo: '/first' 
}); 
}]); 

first.html und second.html tun auch nicht viel: first.html:

<h1>first</h1> 
<a href="#/second">second</a> 
     <accordion close-others="oneAtATime"> 
     <accordion-group heading="Heading 1" is-open="true"> 
      TSome Content 
     </accordion-group> 
     <accordion-group heading="Heading 2"> 
      Some Content 
     </accordion-group> 

     </accordion> 

second.html:

<h1>second</h1> 
<a href="#/first">first</a> 

Die first.html sollte wie folgt aussehen, mit arbeitendem Bootstrap:

enter image description here

Antwort

2

Haben Sie ein Modul 'Controller' definiert vor Sie versuchen, Ihre App zu laden? Wenn entfernen Sie es nicht aus den Abhängigkeiten:

var myApp = angular.module('myApp', [ 
    'ngRoute', 
    'ui.bootstrap' 
]); 
+0

Ich habe einige Code-Teile zu machen, klarer – dummkind

1

falsch geschrieben Controller? Einer scheint in Kleinbuchstaben, "Controller" und der andere im Satzfall "Controller" zu sein.

Unabhängig davon, versuchen Sie den Debugger in Ihrem Browser (F12 auf einem Windows-System) und sehen, ob irgendwelche Fehlermeldungen in das Konsolenfenster geschrieben werden, wenn Sie die Seite aktualisieren (F5 oder den Browser aktualisieren). Ich finde, wenn meine Seiten komisch wirken, gibt mir die Konsole normalerweise einen Hinweis.

+0

Ich glaube, ich es nur geschrieben falsch hier ... – dummkind

3

Jedes Mal, wenn Sie angular.module('myApp', []) mit diesem zweiten Parameter aufrufen, erstellen Sie ein Modul.

angular.module('myApp', []) // < - wird ein neues Modul myApp

angular.module('myApp') // < genannt schaffen - für eine bestehende Instanz eines myApp Modul aussehen wird.

Wenn Sie eine Instanz mehrmals mit dem gleichen Namen erstellen, wird die erste Instanz durch die zweite Instanz überschrieben.

+0

Wie muss ich es schreiben, um die Ergebnisse zu sehen, die ich will? :) – dummkind

+0

Ändern Sie die Modulzeile in Ihrer app.js in 'angular.module ('myApp', ['ngRoute', 'ui.bootstrap']);'. Ändern Sie dann die Modulzeile in controllers2.js in 'angular.module ('myApp');'. Schließlich - stellen Sie sicher, dass Ihre app.js-Datei vor Ihrer controllers2.js-Datei geladen ist. –

0

In meinem Fall löschen ngAnimate behobenen Probleme mit ui.bootstrap.

-2

bitte ein einfaches Winkel Projekt vorstellen, das sowohl ‚NGRoute‘ sind und ‚UI.bootstrap‘ dank

+3

Dies liefert keine Antwort auf die Frage. Sie können [ähnliche Fragen suchen] (// stackoverflow.com/search) oder auf die verwandten und verknüpften Fragen auf der rechten Seite der Seite verweisen, um eine Antwort zu finden. Wenn Sie eine verwandte, aber andere Frage haben, [stellen Sie eine neue Frage] (// stackoverflow.com/questions/ask), und fügen Sie einen Link zu diesem ein, um den Kontext zu verdeutlichen. Siehe: [Stellen Sie Fragen, erhalten Sie Antworten, keine Ablenkungen] (0) stackoverflow.com/tour –

+0

Wenn Sie eine neue Frage haben, fragen Sie sie bitte, indem Sie auf [Frage stellen] klicken (https://stackoverflow.com/questions/ fragen). Fügen Sie einen Link zu dieser Frage hinzu, wenn es hilft, Kontext bereitzustellen. - [Aus Bewertung] (/ review/low-quality-posts/18851168) – Kos

Verwandte Themen