我的 AngularJS 路线有什么问题?
What is wrong with my AngularJS routes?
我已经创建了一个 AngularJS 沙箱,可以这么说。我使用 Bootstrap 提供的模板 html 来提高设置速度,我计划使用 Bootstrap 来快速完成它。在设置所有内容时,我注意到我的路线无法正常工作。在我的 index.html
文件中,我尝试将 angular 文件放在几个地方,但我认为这不是问题所在。我也试过使用 <ng-view></ng-view>
,而不是 div
。在 app.js
中,我尝试将 templateUrl 的路由从根目录重命名为结束文件 app/home/home.html
,以及许多其他配置。当我在我的浏览器中加载时,我得到的只是我的导航菜单。我什至没有从 templateUrl 中获得 html。我可能对所有这些都是错的,但我无法弄清楚。我在我的 index.html
文件中放置了一个通用 Bootstrap 导航用于我的初始设置。我的问题是什么?
index.html
<!DOCTYPE html>
<html lang="en" ng-app="myApp">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<script src="angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.6/angular-route.js"></script>
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous">
</head>
<body>
<nav class="navbar navbar-expand-md navbar-dark bg-dark">
<a class="navbar-brand" href="home.html">Angular</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
<div class="navbar-nav">
<a class="nav-item nav-link" href="#">Home</a>
<a class="nav-item nav-link" href="#">About</a>
<a class="nav-item nav-link" href="#">Contact</a>
</div>
</div>
</nav>
<ng-view>
</ng-view>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script>
<script src="app/app.js"></script>
<script src="app/home/HomeController.js"></script>
</body>
</html>
app.js
var app = angular.module('myApp', ['ngRoute']);
app.config(function($routeProvider){
$routeProvider
.when("/home", {
templateURL: "home.html",
controller: "HomeController"
})
.when("/about", {
templateURL: "about.html",
controller: "AboutController"
})
.otherwise({redirectTo: "/home"});
});
HomeController.js
var app = angular.module('myApp');
app.controller('HomeController', function($scope){
$scope.noun = {
person: "Maximus Aurelius",
place: "World",
thing: "sword"
};
});
home.html
<div>
<h1>Hello {{noun.person}}</h1>
</div>
我的目录
开发工具网络
模板的路径是相对于主页的。您正在页面文件所在的根目录中查找模板,但它们位于子目录中:
尝试:
$routeProvider
.when("/home", {
templateURL: "home/home.html",
controller: "HomeController"
})
.when("/about", {
templateURL: "about/about.html",
controller: "AboutController"
})
看起来这只是您的 $routeProvider 中的错字。 templateURL 应该只是 templateUrl.
我已经创建了一个 AngularJS 沙箱,可以这么说。我使用 Bootstrap 提供的模板 html 来提高设置速度,我计划使用 Bootstrap 来快速完成它。在设置所有内容时,我注意到我的路线无法正常工作。在我的 index.html
文件中,我尝试将 angular 文件放在几个地方,但我认为这不是问题所在。我也试过使用 <ng-view></ng-view>
,而不是 div
。在 app.js
中,我尝试将 templateUrl 的路由从根目录重命名为结束文件 app/home/home.html
,以及许多其他配置。当我在我的浏览器中加载时,我得到的只是我的导航菜单。我什至没有从 templateUrl 中获得 html。我可能对所有这些都是错的,但我无法弄清楚。我在我的 index.html
文件中放置了一个通用 Bootstrap 导航用于我的初始设置。我的问题是什么?
index.html
<!DOCTYPE html>
<html lang="en" ng-app="myApp">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<script src="angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.6/angular-route.js"></script>
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous">
</head>
<body>
<nav class="navbar navbar-expand-md navbar-dark bg-dark">
<a class="navbar-brand" href="home.html">Angular</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
<div class="navbar-nav">
<a class="nav-item nav-link" href="#">Home</a>
<a class="nav-item nav-link" href="#">About</a>
<a class="nav-item nav-link" href="#">Contact</a>
</div>
</div>
</nav>
<ng-view>
</ng-view>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script>
<script src="app/app.js"></script>
<script src="app/home/HomeController.js"></script>
</body>
</html>
app.js
var app = angular.module('myApp', ['ngRoute']);
app.config(function($routeProvider){
$routeProvider
.when("/home", {
templateURL: "home.html",
controller: "HomeController"
})
.when("/about", {
templateURL: "about.html",
controller: "AboutController"
})
.otherwise({redirectTo: "/home"});
});
HomeController.js
var app = angular.module('myApp');
app.controller('HomeController', function($scope){
$scope.noun = {
person: "Maximus Aurelius",
place: "World",
thing: "sword"
};
});
home.html
<div>
<h1>Hello {{noun.person}}</h1>
</div>
我的目录
开发工具网络
模板的路径是相对于主页的。您正在页面文件所在的根目录中查找模板,但它们位于子目录中:
尝试:
$routeProvider
.when("/home", {
templateURL: "home/home.html",
controller: "HomeController"
})
.when("/about", {
templateURL: "about/about.html",
controller: "AboutController"
})
看起来这只是您的 $routeProvider 中的错字。 templateURL 应该只是 templateUrl.