我正在尝试用书和一些例子来学习角度,并且我有一些困难时期试图理解ng-view如何知道基于路由系统显示的视图。
所以这是一个例子:
<!DOCTYPE html>
<html ng-app="maintenance">
<head>
<title>Dive Sites</title>
<link href="./lib/bootstrap/bootstrap.min.css" rel="stylesheet" />
<link href="./site.css" rel="stylesheet" />
</head>
<body ng-controller="adminCtrl">
<!-- Navigation header -->
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<button type="button" class="navbar-toggle collapsed"
data-toggle="collapse"
data-target="#adminMenu">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">
Younderwater Admin
</a>
<div class="collapse navbar-collapse" id="adminMenu">
<ul class="nav navbar-nav">
<li ng-class="{active: isActive('Locations')}">
<a href="#/locations">Locations</a>
</li>
<li ng-class="{active: isActive('Sites')}">
<a href="#/sites">
Dive Sites
</a>
</li>
</ul>
</div>
</div>
</nav>
<!-- Optional title bar -->
<div class="current-spot">
<div class="container-fluid" >
<div class="container">
<div ng-show="view=='locations'">
<h3>Manage the list of diving locations</h3>
</div>
<div ng-show="view=='diveSites'">
<h3>Manage the list of dive sites</h3>
</div>
</div>
</div>
</div>
<!-- View content -->
<div class="main-content">
<div class="container-fluid">
<div class="container">
<div ng-view></div>
</div>
</div>
</div>
<script src="./lib/jquery/jquery.min.js"></script>
<script src="./lib/bootstrap/bootstrap.min.js"></script>
<script src="./lib/angular/angular.min.js"></script>
<script src="./lib/angular/angular-route.min.js"></script>
<script src="maintenance.js"></script>
</body>
</html>
SCRIPT
angular.module('maintenance', ['ngRoute'])
.controller('adminCtrl', AdminCtrl)
.config(function ($routeProvider) {
$routeProvider.when('/locations', {
templateUrl: 'views/locations.html'
});
$routeProvider.when('/sites', {
templateUrl: 'views/sites.html'
});
$routeProvider.otherwise({
templateUrl: 'views/main.html'
});
});
function AdminCtrl($scope) {
}
我需要知道我是否有正确的思考方式,看这个例子,我会说'#'表示要使用路由系统,在脚本中我们设置路由和app应加载的视图在网址上,当我按下基于路由系统的#it搜索并将视图传递给ng-view时,我不知道处理是否正确,这就是为什么我需要更好地理解它是如何工作的,对不起,如果我没解释得很好:/
Ps:抱歉我的英文不好
答案 0 :(得分:0)
首先,angular.module(&#39; maintenance&#39;,....)必须匹配。我指的是标识符&#39; maintenance&#39;。如果没有这个,您的JS文件将无法找到您的HTML文件。
从JS文件中,您有angular.module(&#39; maintenance&#39;,[&#39; ngRoute&#39;]),ngRoute是路由的角度指令。
https://docs.angularjs.org/api/ngRoute
$ routeProvider说明要去的页面。
http://www.w3schools.com/angular/angular_routing.asp
templateUrl显示页面的URL。
https://docs.angularjs.org/guide/directive
http://techfunda.com/howto/505/function-with-templateurl
我非常确定您的项目中有以下html文件。
locations.html
sites.html
main.html中