2014-09-29 3 views
0

Как я могу получить значение access_token в моем ng-controller как $routeParams по следующему URL-адресу?Получить параметр маршрута из URL в Angular.js

http://www.example.com/#/access_token=asdfjaksjdhflanblasdfkjahdloahds 
+0

ДОЛЖНА пройти через https://docs.angularjs.org/api/ngRoute/service/$route. Вы должны указать это в маршруте и в angularjs будет больше так как '/ # access_token/asdafdgdhfghfgh' –

+0

но я получаю URL как/# ключ = значение формата, а не/# ключ /: значение –

ответ

2

Если оно не определено явно в вашем маршруте, то он не будет доступен в $routeParams

Если маршрут определяется как:

.when('/access_token/:token') 

Тогда вы сможете чтобы получить доступ к этому:

var token = $routeParams.token; 

Однако URL, который вы определили, на самом деле не является хорошим маршрутом p aram или действительный параметр строки запроса. Если бы действительный параметр строки запроса

#/?access_token=blahblahblah 

Тогда вы могли бы получить доступ к нему с помощью метода $location.search().

var accessToken = $location.search('access_token'); 

Как она стоит прямо сейчас, вы бы все равно придется разобрать значение, если пара весь ключ/значение находится в вашем маршруте парам.

3

на вас приложение конфигурации

App.config(['$routeProvider', function($routeProvider) { 
    $routeProvider. 
    when('/:id', { 
    .... 
    controller: 'DetailsController' 
    }). 

использования на контроллере $ routeParams

.controller("DetailsController", ['$routeParams',function($routeParams){  
    var id = $routeParams.id; // this name is from config :id 
}]); 
+0

но я получаю URL as/# key = value format, not/# key /: value –

+1

@TahinRahman key = значение эквивалентно значению key: value. Это всего лишь два разных соглашения для одного и того же. – agconti

Смежные вопросы