2016-05-06 15 views
2

update: Das Problem stellt sich als unbeabsichtigt von allen Modulen im Dienst heraus.

Dies ist das Commit, das funktioniert, repo. Und das ist der Code, der das Problem verursacht, link. Ich habe immer noch keine Ahnung, was hier falsch läuft.

Nach einigen Versuchen denke ich, dass es ist, weil ich Versprechen verwende, Daten zu holen. Ich benutze auch d3Promise in der App, und bekomme den gleichen Fehler, die Direktive nicht wieder geladen (und dieses Mal, Menü-Direktive auch fehlschlägt).

Ein seltsamer Fehler.

Nachdem ich die Menüanweisung hinzugefügt habe, wird die map-Direktive nicht in die Seite geladen. Es war auf der Seite davor.

kein Fehler, sowohl in Chrome-Konsole und Grunt-Server.

Ich verbrachte einige Zeit Debugging. Ich habe festgestellt, dass der $ routeProvider nicht funktioniert. Es ändert nur die URL, lädt aber nicht die Partials und bindet Controller von Partials.

Unten ist der Code:

in index.html:

<body ng-app="SFM"> 
<!-- Add your site or application content here --> 
<div class="container"> 
    <div class="header"> 
    <h3 class="text-muted">SF-Muni</h3> 
    <a ng-href="#/about" class="btn">about</a> 
    </div> 

    <div menu></div> 

    <div ng-view></div> 
</div> 
<!-- other vender files --> 
<script src="scripts/app.js"></script> 

<!-- utilities --> 

<!-- services --> 
<script src="scripts/services/d3service.js"></script> 
<script src="scripts/services/muniService.js"></script> 

<!-- controllers --> 
<script src="scripts/controllers/main.js"></script> 
<script src="scripts/controllers/about.js"></script> 

<!-- directives --> 
<script src="scripts/directives/menu.js"></script> 
<script src="scripts/directives/map.js"></script> 
</body> 

app.js:

'use strict'; 
angular 
    .module('SFM', [ 
     'ngResource', 
     'ngRoute', 
     'd3' 
    ]) 
    .config(function ($routeProvider) { 
     $routeProvider 
      .when('/', { 
       templateUrl: 'views/main.html', 
       controller: 'MainCtrl' 
      }) 
      .when('/about', { 
       templateUrl: 'views/about.html', 
       controller: 'AboutCtrl' 
      }) 
      .otherwise({ 
       redirectTo: '/' 
      }); 
    }); 

Antwort

0

Soweit ich kann Ihnen sagen, die $ routeProvider zu verlangen vergessen, in die Konfigurationsfunktion injiziert werden.

Versuchen Sie folgendes:

.config(['$routeProvider', 
    function($routeProvider) { 
    $routeProvider 
     .when('/', { 
      templateUrl: 'views/main.html', 
      controller: 'MainCtrl' 
     }) 
     .when('/about', { 
      templateUrl: 'views/about.html', 
      controller: 'AboutCtrl' 
     }) 
     .otherwise({ 
      redirectTo: '/' 
     }); 
    }]); 
+0

Ich werde versuchen, aber ich klonen die Winkel Samen von GitHub. Und es funktionierte gut, bis ich eine andere Direktive in die App einfügte. Ich meine, $ routeProvider hat wie erwartet funktioniert, und ich könnte dorthin gehen, wo ich möchte. –

+0

Nichts hat sich geändert. Und mein Code ist hier, https://github.com/lianliu/SF-Muni –