2013-05-23 27 views
8

Tôi đã một nguồn tài nguyên quy định như sau:góc Resource Encoding URL

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

Theo quan điểm của tôi, tôi có:

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

nơi go() được định nghĩa trong điều khiển của tôi là:

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

Đối với mặt hàng được đề cập, d.param bằng

TkZUOWZwcnc9Uldo%0ASzRvd2FiWk 

Nhưng khi tôi gọi DatumItem.get() với ID đúng, nó đang thay đổi id để

TkZUOWZwcnc9Uldo%250ASzRvd2FiWk 

Có cách nào để ngăn chặn% so với được mã hóa với một% 25 trong trường hợp này ?

Tôi đã thử kết hợp sử dụng encodeURI, encodeURIComponent để không có kết quả.

bất kỳ trợ giúp nào sẽ được đánh giá cao, cảm ơn!

Trả lời

9

Kể từ khi URL đã được URIencoded bạn cần phải giải mã nó trước khi đi qua nó để góc:

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

Điều này làm việc hoàn hảo, cảm ơn !! –

1

bạn cũng có thể sử dụng unescape thay vì decodeURIComponent.

Tham khảo bên dưới đoạn mã -

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

Giải pháp này không được chấp nhận, thích decodeURIComponent (p) – Leogout

0

Tôi đã tạo ra một bộ lọc trong dự án angularJs để giải mã địa chỉ URL. Ví dụ, nếu URL của bạn là- http://www.example.com/test1 test2 tes3

Sau đó lọc làm cho URL như this- http://www.example.com/test1-test2-tes3

trong dự án góc của tôi tên ứng dụng chính là angularApp.

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

Bây giờ bạn muốn tạo bộ lọc cho url giải mã.

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

Đoạn mã trên là để tạo ra một bộ lọc để giải mã url. Và tên bộ lọc của tôi là 'decodeURL'.chúng tôi sẽ sử dụng decodeURL như một bộ lọc trong mã của tôi

See the snapshot

Làm thế nào để sử dụng bộ lọc này trong HTML-

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

// Trên đây là cho nhà nước định tuyến trong angularjs.

See the snapshot

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

// Đoạn mã trên cho URL chuyển hướng.

See the snapshot