2017-04-04 2 views
0

So war ich einen Winkel tuto beobachten und der Mann erklärt, den ‚ngRoute‘ und wie es zu benutzen, verwenden Sie folgendes Beispiel:AngularJS: Routing

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

 
myApp.config(function ($routeProvider) { 
 
    $routeProvider 
 
     .when('/', { 
 
      templateUrl: 'pages/home.html', 
 
      controller: 'mainController' 
 

 

 
     }) 
 
     .when('/second', { 
 
      templateUrl: 'pages/second.html', 
 
      controller: 'secondController' 
 

 
     }) 
 

 
}); 
 

 

 
myApp.controller('mainController', ['$scope', '$route', function ($scope, $route) { 
 

 

 

 

 
}]) 
 
    .controller('secondController', ['$scope', '$route', function ($scope, $route) { 
 

 

 

 

 
}]);
<!DOCTYPE html> 
 
<html lang="en" ng-app="myApp"> 
 

 
<head> 
 
    <meta charset="UTF-8"> 
 
    <title>Document</title> 
 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" type="text/css"> 
 
</head> 
 

 
<body> 
 
    <!-- Fixed navbar --> 
 
    <nav class="navbar navbar-default navbar-fixed-top"> 
 
     <div class="container"> 
 
     <div class="navbar-header"> 
 
      <a class="navbar-brand" href="#">Angular</a> 
 
     </div> 
 
     <div id="navbar" class="navbar-collapse collapse"> 
 
     
 
      <ul class="nav navbar-nav navbar-right"> 
 
      <li><a href="#">Home</a></li> 
 
      <li><a href="#/second">Second</a></li> 
 
      </ul> 
 
     </div> 
 
     </div> 
 
    </nav> 
 

 
    <div class="container"> 
 
     
 
     <div ng-view class="jumbotron"></div> 
 

 
    </div> <!-- /container --> 
 

 

 

 
     
 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.3/angular.min.js"></script> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.3/angular-route.js"></script> 
 
    <script src="app.js"></script> 
 
</body> 
 

 

 

 
</html>

und es funktionierte für ihn , aber für mich funktionierte nur der Home Link, während der Second Link nicht funktionierte, bis ich die <a href="#/second">Second</a> zu <a href="#!/second">Second</a> änderte und es funktionierte, aber ich verstehe nicht warum?

+1

Es ist wegen der Version, die Sie verwendeten. Das Video, das du angeschaut hast, könnte mit eckigen 1.4 oder 1.5 sein. Gehen Sie nicht mit ngRoute, versuchen Sie UI-Router, der flexibel ist als ngRoute –

+0

ja, ein Freund von mir erzählte das auch! Danke – damer

Antwort

2

verwenden Sie wahrscheinlich Version 1.6 richtig? . In diesem 1.6-eckigen Team wurde beschlossen, das standardmäßige $ location Hash-Präfix auf '!' . Sie können in

https://docs.angularjs.org/guide/migration#migrating-from-1-5-to-1-6

+0

So war es mit der Version verwandt:/ Danke Mann, ich schätze Ihre Hilfe – damer

+0

@damer froh um Hilfe. Wenn es für Sie hilfreich ist, vergessen Sie nicht, für mich zu akzeptieren ^^ – Akashii

1

können Sie sicherstellen lesen, dass Sie die folgenden Code in Config von Ihrer Route Datei ...

$ locationProvider.hashPrefix ('haben! ");

+0

ja ich denke, das ist der Grund, warum, es ist mit der Version von eckigen verwandt Ich verwende Danke für die Hilfe – damer