我有索引頁,它看起來像這樣:AngularJS routeProvider重定向不起作用
<!DOCTYPE html>
<html ng-app="libraryApp">
<head>
<meta charset="UTF-8">
<title>Angular Library</title>
<script
src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src="page/js/angular-route.js"></script>
<script src="page/js/app.js"></script>
<script src="page/js/controllers.js"></script>
<script src="page/js/services.js"></script>
</head>
<body>
<div ng-view></div>
</body>
</html>
我也有app.js:
var app = angular.module('libraryApp', ['ngRoute', 'libraryControllers']);
app.config(['$routeProvider', function($routeProvider){
$routeProvider
.when('/', {
templateUrl: 'page/booksList.html',
controller: 'booksListController'
})
.when('/library/bookDetails/:bookId', {
templateUrl: 'page/bookDetails.html',
controller: 'bookListController'
});
}]);
控制器:
var libraryControllers = angular.module('libraryControllers', ['libraryServices']);
libraryControllers.controller('booksListController', function($scope, $http, BookFactory){
BookFactory.getAllBooks()
.success(function(response){
$scope.books = response;
});
$scope.bookIsNotSelected = false;
$scope.selectedBook = { id: 0 };
$scope.showDetails = function(){
if ($scope.selectedBook.id == 0){
$scope.bookIsNotSelected = true;
}
else {
BookFactory.showDetails($scope.selectedBook.id);
}
};
});
和services.js:
var services = angular.module('libraryServices', []);
services.factory('BookFactory', function($http) {
var bookFactory = {};
bookFactory.getAllBooks = function() {
return $http.get('getBooksList');
}
bookFactory.showDetails = function(bookId){
var request = 'library/bookDetails/' + bookId;
return $http.get(request);
};
return bookFactory;
});
我的問題是當我用showDetails()ng單擊函數單擊按鈕時,我向Spring Rest Controller發送請求以獲取指定的書籍數據。一切工作正常,我得到JSON對象,但我的routeProvider不會將我重定向到page/bookDetails.html頁面。
正如你所看到的HTTP GET請求是適當的。我不知道爲什麼它不會將我重定向到bookDetails.html頁面。任何想法的傢伙?我卡住了。
由於您沒有在控制器中注入'$ location',所以會出現錯誤。 –
@AvijitGupta先生這是角度的拇指規則,您應該在使用它之前注入依賴關係..我不認爲應該在答案中提及.. –
您瞭解這一點,我知道這一點,但也許其他人看到這個帖子不要。 –