Usługa $location
analizuje adres URL z paska adresu przeglądarki i udostępnia adres URL aplikacji. Ponieważ używasz zwykłej ścieżki URL i segmentów wyszukiwania, musisz ustawić html5Mode
na true z $locationProvider
.
Domyślnie $locationProvider
używa hashbangs, więc jeśli nie ustawisz html5Mode
na true, otrzymasz pusty ciąg przy próbie pobrania ścieżki URL.
Po ustawieniu html5mode
można użyć usługi $location
, aby pobrać ścieżkę URL i napisać własną regułę, aby przetworzyć ścieżkę.
Na przykład załóżmy, że pełny adres URL wygląda następująco: http://example.com/person/show/321
Następnie w main.js
mogłeś:
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);
}
aw index.html
może mieć:
<!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>
nadzieję, że ten jest pomocny dla ciebie.
W tym scenariuszu jest jedyną zaletą korzystania $ lokalizacji iniekcji zależność? (Wygląda na to, że NG powinno zapewnić wygodne API ...) – ryanwebjackson