【发布时间】:2016-04-07 06:22:48
【问题描述】:
我的服务器使用 Angular 进行路由。我的服务器向浏览器发送一个 HTML 文件,其中包含带有路由的 js 文件(使用 Angular js)。
我的服务器代码(发送到浏览器 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 文件后,他不会将其重定向到 main.js 以使用路由。我试图调试它,但浏览器卡住了,什么也不做。我的应用是本地的,我试图连接的 url 是:
http://localhost:8080/stations
所有文件都正确加载,控制台上没有任何错误。
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>
【问题讨论】:
-
控制台告诉你什么?并检查您的 .js 文件是否包含真正的 html 内容,而不是 check.html 的内容
-
@GalSosin 当刚接触 Angular 时,混合服务器端和客户端是一个常见的误解
标签: javascript jquery html angularjs node.js