2013-05-23 14 views
8

मैं एक संसाधन के रूप में निम्नानुसार परिभाषित किया है:कोणीय संसाधन एन्कोडिंग यूआरएल

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

के बराबर है 10
TkZUOWZwcnc9Uldo%0ASzRvd2FiWk 

लेकिन जब मैं सही आईडी के साथ DatumItem.get() कहते हैं, यह

TkZUOWZwcnc9Uldo%250ASzRvd2FiWk 

करने के लिए आईडी से बदल रहा है वहाँ इस मामले में एक% 25 करने के लिए एन्कोड किया जा रहा से% को रोकने के लिए एक रास्ता है ?

मैंने एन्कोडुरि, एनकोडुरिकोम्पोनेंट का उपयोग करने के संयोजन का कोई प्रयास नहीं किया है।

किसी भी मदद की सराहना की जाएगी, धन्यवाद!

उत्तर

9

के बाद से यूआरएल पहले URIencoded है आप इसे कोणीय को पार करने से पहले यह डिकोड करने के लिए की जरूरत है:

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

यह पूरी तरह से काम किया, धन्यवाद !! –

1

आप भी unescape decodeURIComponent के बजाय का उपयोग कर सकते हैं।

कोड स्निपेट नीचे देखें -

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

यह समाधान बहिष्कृत है, decodeURIComponent (पी) पसंद करते हैं – Leogout

0

मैं यूआरएल को डिकोड करने के AngularJS परियोजना में एक फिल्टर बनाया है। उदाहरण के लिए आपके यूआरएल http://www.example.com/test1 test2 tes3

फिर से फिल्टर इस- http://www.example.com/test1-test2-tes3

मेरी कोणीय परियोजना में मुख्य अनुप्रयोग नाम angularApp है की तरह यूआरएल बनाने है- यदि।

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

अब आप डिकोड यूआरएल के लिए एक फिल्टर बनाना चाहते हैं।

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

ऊपर कोड यूआरएल डिकोड करने के लिए एक फिल्टर बनाने के लिए है। और मेरा फ़िल्टर नाम '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

संबंधित मुद्दे