2013-05-23 2 views
8

Я ресурс определяется следующим образом:Угловая ресурсов Кодирование URL

app.factory("DatumItem", function($resource) { 
    return $resource('/data/:id', {id: '@id'}); 
}); 

На мой взгляд, у меня есть:

<div ng-click="go('/datum/' + d.to_param)">Test</div> 

где идут() определяется в мой контроллер, как:

$scope.go = function (params) { 
    $location.path(params); 
}; 

По вопросу повестки дня d.param равен

TkZUOWZwcnc9Uldo%0ASzRvd2FiWk 

Но когда я называю DatumItem.get() с правильным ID, он изменяет идентификатор для

TkZUOWZwcnc9Uldo%250ASzRvd2FiWk 

Есть ли способ, чтобы предотвратить% от кодируемого до 25% в этом случае ?

Я пробовал комбинировать использование encodeURI, encodeURIComponent безрезультатно.

всякая помощь была бы принята с благодарностью, спасибо!

ответ

9

Поскольку URL уже URIencoded вам нужно декодировать его перед передачей его угловой:

$scope.go = function (params) { 
    $location.path(decodeURIComponent(params)); 
}; 
+0

Это работало отлично, спасибо !! –

1

вы также можете использовать вместо экранирования в из decodeURIComponent.

см ниже фрагмент кода -

$scope.go = function (params) { 
    $location.path(unescape(params)); 
}; 
+0

Это решение устарело, предпочитайте decodeURIComponent (p) – Leogout

0

Я создал фильтр в проекте angularJs для декодирования URL. Например, если ваш URL это- http://www.example.com/test1 test2 TES3

Затем процеживают сделать URL как this- http://www.example.com/test1-test2-tes3

в моем угловом проекте основное имя приложения является angularApp.

var app = angular.module('angularApp', []);// This is your main angular app. 

Теперь вы хотите создать фильтр для декодирования URL.

app.filter('decodeURL', function() { 
    return function(text) { 
     if(text) { 
      return text.split(' ').join('-').toLowerCase().replace(/[^a-z0-9]+/g, '-'); 
     } 
    } 
}); 

выше код, чтобы создать фильтр для декодирования URL. И мое имя фильтра - «decodeURL».мы будем использовать decodeURL в качестве фильтра в моем коде

See the snapshot

Как использовать этот фильтр в HTML-

<a ui-sref="{{business.category[0].categoryName.toLowerCase()}}Detail({id:business.id,title:(business.title | decodeURL)})"></a> 

// вышеприведенные состояние маршрутизации в angularjs.

See the snapshot

<a href="/coupon/{{coupon.id}}/{{coupon.title | decodeURL}}" 
             class="btn btn-warning show-btnhome show-button-margin">Show</a> 

// Приведенный выше код URL перенаправления.

See the snapshot

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