$ dịch vụ vị trí phản hồi url phân tích trong thanh địa chỉ trình duyệt và cung cấp URL cho APP của bạn.
Vì bạn đang sử dụng đường dẫn URL thông thường và phân đoạn tìm kiếm, bạn phải đặt $ locationProvider html5Mode thành true.
$ locationProvider sẽ sử dụng hashbang làm chế độ mặc định.
Nếu bạn không đặt html5Mode thành true, bạn sẽ nhận được chuỗi trống khi bạn cố gắng tìm nạp đường dẫn url.
Sau đó, sử dụng dịch vụ vị trí $ để tìm đường dẫn url sau khi đặt html5Mode.
Và viết quy tắc của riêng bạn để xử lý đường dẫn.
Giả sử rằng URL đầy đủ của bạn trông giống như: http://example.com/person/show/321
Main.js
angular.module("MyAPP",[],function($locationProvider){
$locationProvider.html5Mode(true);
});
function MainController($location){
var pId = $location.path().split("/")[3]||"Unknown"; //path will be /person/show/321/, and array looks like: ["","person","show","321",""]
console.log(pId);
}
index.html
<!DOCTYPE html>
<html lang="en" ng-app="MyAPP">
<head>
<meta charset="utf-8">
<title>Angular test</title>
</head>
<body ng-controller="MainController">
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>
Hy vọng điều này là hữu ích cho bạn.
Nguồn
2014-12-08 06:25:49
Bạn đang sử dụng '$ routeProvider' ở chế độ html5 (không có url đăng nhập' # ') hay không? – GregL
tôi chưa sử dụng $ routeProvider, tôi muốn điều này để gọi api từ cuộc gọi ajax. – Pravin
Bạn nhận được gì khi bạn thực hiện 'console.dir ($ location)'? – GregL