使用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>