2017-02-22 70 views
0

Как получить первые две части URL-адреса, используя AngularJS?Как получить первые два сегмента URL-адреса?

Например, я хотел бы получить два первых пути этого URL (как admin/password/):

http://localhost:3000/admin/password/57045b10eba5ca1dfd01a8fc4adb4f6c4efc6454b9454514 
+0

Где размещается Угловая приложение? В корне этого URL или где-то еще? Вы используете 'html5mode'' $ locationProvider', чтобы получить хэш из пути? – adam0101

ответ

1

От Angular $location service:

url([url]);

возвратного URL при вызове без какого-либо параметра.

Используйте это так:

$scope.currentUrl = $location.url(); 

Если вам не нужен весь URL, только split it.

+1

Mistalis, Спасибо, это работа. –

0

расколоть URL на "/"

url = window.location.href.split("/") 

теперь у вас есть каждое слово в отдельном элементе массива, то вы можете объединить их в одну строку, такую ​​как

console.log(url[0] + url[1] + url[2]); 
0

Вы можете использовать URL, чтобы получить путь к файлу, а затем разделить на / и возьмите 2 сегменты, которые вы хотите:

var url = "http://localhost:3000/admin/password/57045b10eba5ca1dfd01a8fc4adb4f6c4efc6454b9454514"; 
var pathParts = new URL(url).pathname.split('/'); //["", "admin", "password", "57045b10eba5ca1dfd01a8fc4adb4f6c4efc6454b9454514"] 

pathParts.slice(1, 3).join('/') + '/'; //"admin/password/" 
0

Вы можете сделать это с помощью RegExp.

var str = 'http://localhost:3000/admin/password/57045b10eba5ca1dfd01a8fc4adb4f6c4efc6454b9454514'; 
 

 
var reg = str.match(/(?!:\d+)(\/\w+)(\/\w+)/g); 
 

 
console.log(reg.toString().split('/').slice(1));