2016-08-24 12 views
0

Ich verstehe Routing und ich habe eine einfache Anwendung mit ein paar Schaltflächen an der Spitze im Header-Bereich. Die Schaltflächen funktionieren gut und zeigen die richtigen Informationen an, aber ich habe darauf hingewiesen, dass eine der Seiten (directory.html) den von mir erstellten "myController" -Controller verwendet, aber stattdessen gibt er mir die Curley-Klammern und nicht die tatsächlichen Bereichsdaten. Kann mir jemand sagen, was ich falsch mache?Warum nimmt meine Seite nicht mein Controller

HTML

<!DOCTYPE html> 
<html lang="en" ng-app="myApp"> 
    <head> 
    <title>Sample app</title> 
    <link href="content/css/styles.css" rel="stylesheet" type="text/css" /> 
    <script src="app/lib/angular.min.js"></script> 
    <script src="app/lib/angular-route.min.js"></script> 
    <script src="app/app.js"></script> 
    </head> 

    <body> 
    <header ng-include="'header.html'"></header> 
    <main ng-view></main> 
    </body> 
</html> 

JS

angular.module('myApp', ['ngRoute']) 

.config(['$routeProvider', function($routeProvider){ 
    $routeProvider 
     .when('/home', { 
      templateUrl: 'views/home.html' 
     }) 
     .when('/directory', { 
      templateUrl: 'views/directory.html', 
      //since this page requires a controller 
      controller: 'myController' 
     }) 
     .otherwise({ 
      redirectTo: '/home' 
     }); 
}]); 


angular.module('myApp', []) 
    .controller('myController', function($scope) { 
     $scope.message = ("Hello World"); 
}); 

directory.html

<p>This is my directory page.</p> 
<p>{{message}}</p> 

Header.html

<div id="menu-bar"> 
    <h1>My Sample App</h1> 
     <ul> 
      <li><a href="#home">Home</a></li> 
      <li><a href="#directory">Directory</a></li> 
     </ul> 
</div> 

Antwort

1

Ihre js-Datei ist ungültig.

angular.module('myApp', ['ngRoute']) 

.config(['$routeProvider', function($routeProvider){ 
    $routeProvider 
     .when('/home', { 
      templateUrl: 'views/home.html' 
     }) 
     .when('/directory', { 
      templateUrl: 'views/directory.html', 
      //since this page requires a controller 
      controller: 'myController' 
     }) 
     .otherwise({ 
      redirectTo: '/home' 
     }); 

}]); 

angular.module('myApp', []) 
    .controller('myController', function($scope) { 
     $scope.message = ("Hello World"); 
}); 

Sie Ihren Controller innerhalb des Konfigurationsmoduls gesetzt haben ...

+0

Thalaivar, vielen Dank für Ihre Antwort. Ich habe meinen Code basierend auf Ihrer Antwort geändert und das JS in meinem ursprünglichen Post modifiziert. Leider funktionieren die Tasten jetzt nicht. –

+0

Macht nichts, hab es. Es war ein duh auf mich. Vielen Dank !! –

Verwandte Themen