难住了。我的代码没有问题(据我所见),并且在未选择任何内容时加载list-patents.htm
模板,但在单击相应的锚标记时无法加载add-patents
模板。 URL显示如下:
http://localhost/#!/#list-patents
内容没有加载的任何原因?它可能是URL中的#!
吗?
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular-route.min.js"></script>
</head>
<main ng-app="myApp" ng-controller="appCtrl">
<div class="container">
<nav>
<ul>
<li><a href="#list-patents">List patents</li>
<li><a href="#add-patent">Add patent</li>
</ul>
</nav>
<section class="ng-view">
</section>
</div>
</main>
var app = angular.module('myApp', ['ngRoute']);
app.controller('appCtrl', function($scope, $http, $rootScope) {
$scope.stages = [
{'stage': 'green', 'cost': '$1, 500'},
{'stage': 'yellow', 'cost': '$1, 800'},
{'stage': 'red', 'cost': '$2, 100'},
{'stage': 'blue', 'cost': '$2, 500'},
{'stage': 'brown', 'cost': '$2, 900'}
];
$http.get('../scripts/patent-renewal.json').then(function(response) {
$scope.application = response.data.patents;
});
});
app.config(function($routeProvider){
$routeProvider
.when('/', {
templateUrl: '../templates/list-patents.htm',
controller: 'appCtrl'
})
.when('/add-patent', {
templateUrl:'../templates/add-patent.htm',
controller: 'appCtrl'
})
});
答案 0 :(得分:2)
!#
可能确实是问题,为什么不加注意。
您可以尝试切换到html5模式
$locationProvider.html5Mode(true);
然后你的href可以是直接的,没有#
:
<li><a href="list-patents">List patents</li>
<li><a href="add-patent">Add patent</li>