我在设置第一个带有路由的角度应用程序时遇到问题。这很简单,无法正常工作。

单击链接时URL发生更改


index.html-file:/// C:/Users/me/repos/angularRouteTest/app/index.html#!/
关于点击-file:/// C:/Users/me/repos/angularRouteTest/app/index.html#!/#about


而且ng-view内部的内容不会改变

码:

<!DOCTYPE html>
<html lang="en">
<head>
    <title></title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="bower_components/angular/angular.min.js"></script>
    <script src="bower_components/angular-route/angular-route.min.js"></script>
    <script src="scripts/app.js"></script>
</head>
<body data-ng-app="swsApp">
    {{1+1}}
    <p><a href="#/">Index</a></p>
    <a href="#about">About</a>
    <div ng-view></div>

</body>




(function() {
"use strict";

var app = angular.module("swsApp", ["ngRoute"]);

app.config(function($routeProvider) {
    $routeProvider
        .when("/", {
 template : "<h1>Main</h1><p>Click on the links to change this content</p>"
        })
        .when("about", {
 template : "<h1>About</h1><p>Click on the links to change this content</p>"
        })
        .otherwise({
            template: "<h1>otherwise</h1>"
        })
})
}());


知道发生了什么吗?

最佳答案

首先,您不需要任何Web服务器即可启动angularJS应用。

关于链接问题,AngularJS使用hashbang URL:https://docs.angularjs.org/guide/$location#hashbang-mode-default-mode-

Hashbang URL意味着angularJS仅拦截与hashbang#!的链接!

您只需要为html代码中的每个链接添加此hashbang:

app.config(function($routeProvider) {
    $routeProvider
        .when("/", {
 template : "<h1>Main</h1><p>Click on the links to change this content</p>"
        })
        .when("/about", {
 template : "<h1>About</h1><p>Clicsdfsdfsdfs this content</p>"
        })
        .otherwise({
            template: "<h1>otherwise</h1>"
        })
})
</script>
<body data-ng-app="sws">
    {{1+1}}
    <p><a href="#">Index</a></p>
    <a href="#!/about">About</a>
    <div ng-view></div>

</body>

09-25 19:19