Исходный код HTML
<div ng-app="">
<div ng-controller="test">
<div ng-address-bar browser="html5"></div>
<br><br>
$location.url() = {{$location.url()}}<br>
$location.search() = {{$location.search('keyword')}}<br>
$location.hash() = {{$location.hash()}}<br>
keyword valus is={{loc}} and ={{loc1}}
</div>
</div>
Исходный код AngularJS
<script>
function test($scope, $location) {
$scope.$location = $location;
$scope.ur = $scope.$location.url('www.html.com/x.html?keyword=test#/x/u');
$scope.loc1 = $scope.$location.search().keyword ;
if($location.url().indexOf('keyword') > -1){
$scope.loc= $location.url().split('=')[1];
$scope.loc = $scope.loc.split("#")[0]
}
}
</script>
Здесь переменные loc
и loc1
оба возвращают test как результат для указанного выше URL. Это правильный путь?
javascript
angularjs
routeparams
praveenpds
источник
источник
Ответы:
Я знаю, что это старый вопрос, но мне потребовалось некоторое время, чтобы разобраться в этом, учитывая скудную документацию Angular. RouteProvider и routeParams это путь. Маршрут связывает URL-адрес с вашим контроллером / представлением, и routeParams можно передать в контроллер.
Проверьте угловой проект семени . В app.js вы найдете пример для поставщика маршрутов. Чтобы использовать параметры просто добавьте их так:
Затем в ваш контроллер вставьте $ routeParams:
При таком подходе вы можете использовать params с URL-адресом, таким как: " http://www.example.com/view1/param1/param2 "
источник
});
должна быть}]);
/view/1/2?other=12
с помощью$routeParams.other
Хотя маршрутизация действительно является хорошим решением для парсинга URL-адресов на уровне приложения, вы можете использовать более низкоуровневый
$location
сервис, который внедряется в ваш собственный сервис или контроллер:Этот простой синтаксис будет работать для
http://example.com/path?myParam=paramValue
. Однако, только если вы ранее настраивали$locationProvider
в режиме HTML 5:В противном случае взгляните на http://example.com/#!/path?myParam=someValue синтаксис "Hashbang", который немного сложнее, но имеет преимущество работы со старыми браузерами (не совместимыми с HTML 5): хорошо.
источник
<base href="http://example.com/en/" />
тег в вашемindex.html
..config(['$locationProvider', function($locationProvider) { $locationProvider.html5Mode({ enabled: true, requireBase: false }); }])
$locationProvider
чтобы это работало.http://example.com/path#?someKey=someVal
затем$location.search().someKey // => 'someVal'
Если вы используете ngRoute, вы можете ввести
$routeParams
в свой контроллерhttp://docs.angularjs.org/api/ngRoute/service/$routeParams
Если вы используете angular-ui-router, вы можете ввести
$stateParams
https://github.com/angular-ui/ui-router/wiki/URL-Routing
источник
$stateParams
показать параметры запроса, мне нужно было указать их при определении состояний, как показано в github.com/angular-ui/ui-router/wiki/…Я нашел решение, как использовать $ location.search (), чтобы получить параметр из URL
сначала в URL нужно поставить синтаксис "#" перед параметром, как в этом примере
"http://www.example.com/page#?key=value"
а затем в вашем контроллере вы помещаете $ location в функцию и используете $ location.search (), чтобы получить параметр URL для
источник
Если уже опубликованные ответы не помогли, можно попробовать с $ location.search (). MyParam; с URL-адресами http: //example.domain#? myParam = paramValue
источник
источник
Простой и простой способ получить значение URL
источник
При использовании angularjs с express
В моем примере я использовал angularjs с экспресс-маршрутизацией, поэтому использование $ routeParams могло бы испортить мою маршрутизацию. Я использовал следующий код, чтобы получить то, что я ожидал:
Это получает шаблон URL и путь к указанному местоположению. Я просто называю это с:
Собирая все это вместе, мой контроллер:
Результат будет:
Надеюсь, это поможет кому-то там!
источник