Я вытягиваю свои волосы из-за этого - я работаю над настройкой маршрутизации для SPA, и он работает потрясающе для main
страницы и моей страницы search
. Однако он не работает вообще для моей страницы services
, он просто ничего не отображает. Мой URL-адрес настроен правильно, и страница определенно находится на страницах /services.html.. Что дает?
Опять же, он отлично работает для маршрутов '/'
и '/searchquery'
, но не '/servicedependencies'
Вот мои файлы:
var impact_analysis = angular.module('impact_analysis', ['ngRoute']);
impact_analysis.config(['$routeProvider', function($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'pages/main.html',
controller: 'mainController'
})
.when('/servicedependencies', {
templateURL: 'pages/services.html',
controller: 'serviceController'
})
.when('/searchquery', {
templateUrl: 'pages/search.html',
controller: 'mainController'
});
}]);
impact_analysis.controller('mainController', ['$scope', '$http', function ($scope, $http) {
$scope.search_string = '';
$scope.search_type = '';
$scope.results = [];
$scope.clicked = 0;
$scope.search = function() {
var request = {
method: 'POST',
url: *********,
data: JSON.stringify({search_string: $scope.search_string, search_type: $scope.search_type}),
headers: {'Content-Type': 'application/json'}
};
$http(request).then(function(response) {
$scope.results=response.data;
$scope.clicked = 1;
});
};
}]);
impact_analysis.controller('serviceController', ['$scope', '$http', function ($scope, $http) {
$scope.clicked = 0;
$scope.results = [];
$scope.service_report = function () {
var request = {
method: 'GET',
url: **************,
};
$http(request).then(function(response) {
$scope.clicked = 1;
$scope.results=response.data;
});
};
}]);
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" />
<link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">
<link href="index.css" rel="stylesheet">
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.2/angular.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.2/angular-route.min.js"></script>
<script src="app.js"></script>
</head>
<body ng-app="impact_analysis">
<!-- START TOP NAVBAR -->
<header>
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" style="color:#B9A3E3" href="index.html">Message Broker Impact Analysis</a>
</div>
<ul class="nav navbar-nav navbar-right">
<li><a class="fa fa-home bigicon" href="#/"></a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="#/searchquery">Search String Query</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="#/servicedependencies">Service Dependency Report</a></li>
</ul>
</div>
</nav>
</header>
<!-- END TOP NAVBAR -->
<div class="container-fluid">
<div ng-view></div>
</div>
</body>
</html>
<div class="row">
<div class="col-md-12">
<div class="page-header">
<h2>Service Dependency Report</h2>
</div>
<button type="button" class="btn btn-warning btn-lg" ng-click="service_report()">Generate</button>
<table class="table-striped table-bordered table-hover" ng-show="results.length != 0" >
<thead>
<tr>
<th>Flow</th>
<th>Service Dependencies</th>
</tr>
</thead>
<tr ng-repeat="msgflow in results">
<td style="font-size: 1.5em">{{ msgflow.name }}</td>
<td ng-repeat="service in msgflow.services">{{ service }}</td>
</tr>
</table>
</div>
</div>
У вас есть опечатка? Попробуйте шаблон url вместо URL шаблона
.when('/servicedependencies', {
templateUrl: 'pages/services.html',
controller: 'serviceController'
})
<IP>/pages/search.html
и<IP>/pages/main.html
, но когда вы щелкаете по неисправной, она ничего не показывает. Должен отображаться<IP>/pages/services.html