gpt4 book ai didi

javascript - 使用 Angular js 进行路由

转载 作者:搜寻专家 更新时间:2023-10-31 23:17:03 26 4
gpt4 key购买 nike

我的服务器使用 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>

最佳答案

好吧,让我们重新开始 Angular ......

Angular 101

您可能知道 Angular 对于单页应用程序 是必不可少的,所以您提供第一页即 check.html 会发生什么?在您的情况下,但您应该将其命名为 index.html这是一个约定。 khair.. 当一个route转换发生在您的 Angular 代码中,即 # 之后的内容它是纯粹的客户端或软重定向。因此 angular 会触发一个 AJAX 请求来检索与您的 templateUrl 匹配的资源从路由器。然后将其插入 <div ng-view></div>因此重定向。注意 ng-view .

下面是建议的解决方案

链接应该是http://localhost:8080/#stations因为 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应该在你的公共(public)目录中并且有这样的代码

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

关于javascript - 使用 Angular js 进行路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34577600/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com