使用angular度js进行路由

我的服务器使用angular度路由。 我的服务器发送到浏览器的HTML文件,其中包含js文件与路由(使用angularjs)。

我的服务器代码(发送到浏览器check.html包含路由文件main.js):

var express = require("express"); var app = express(); // express.createServer(); app.use(express.static(__dirname + '/public')); app.get("/*", function(request, response) { response.sendFile(__dirname + '/public/check.html'); }); app.listen(8080); 

check.html代码:

 <html data-ng-app="myApp"> <head> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="angular.js"></script> <script type="text/javascript" src="angular-route.js"></script> <script type="text/javascript" src="main.js"></script> </head> <body> </body> </html> 

在浏览器获得check.html文件后,他不会将其redirect到main.js以使用路由。 我试图debugging它,但浏览器卡住,不做任何事情。 我的应用程序是本地和试图连接到的URL是:

HTTP://本地主机:8080 /站

并在控制台上正确加载所有文件没有任何错误。

main.js代码:

 var myApp = angular.module('myApp', ['ngRoute']); myApp.config(function($routeProvider) { $routeProvider .when('/', { controller: 'HomeController', templateUrl: 'menu.html' }) .when('/stations', { controller: 'StationsController', templateUrl: 'check2.html' }) .when('/', { controller: 'HomeController', templateUrl: 'menu.html' }) .otherwise({redirectTo: '/'}); }); myApp.controller('StationsController', function($scope){ $scope.check = {name:"ELAD!!"}; }); 

check2.html代码:

 <html> <head> </head> <body> <div> <p>{{check.name}}</p> </div> </body> </html> 

好吧,让我们开始新的angular度..

angular101

你可能知道angular度是必不可less的单页面应用程序,所以会发生什么是你提供的第一页是你的情况check.html ,但你应该命名它的index.html这是一个约定。 khair ..发生什么事情是当你的angular码发生了一个route转换,在#an之后,它是纯粹的客户端或软redirect。 所以angular度激发一个AJAX请求来从路由器中检索与你的templateUrl匹配的资源。 然后将其插入到<div ng-view></div>从而redirect。 注意ng-view

波纹pipe是build议的解决scheme

链接应该是http:// localhost:8080 /#站 ,angular度匹配处理#之后的路由。 其他路线,如你提供的链接,交给server

你的check.html应该像这样。

 <html data-ng-app="myApp"> <head> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="angular.js"></script> <script type="text/javascript" src="angular-route.js"></script> <script type="text/javascript" src="main.js"></script> </head> <body> <div ng-view></div> </body> </html> 

和你的check2.html应该在你的公共目录,并有类似的代码

 <div> <p>{{check.name}}</p> </div>