2015-05-22 111 views
1

我有這樣一個途徑:Angularjs:如何得到的「原始」 routeParams(不編碼或解碼)

when('/show_project/:name', { 
    templateUrl: 'app/projects/show.html', 
}). 

我已經觀察到,當我請求一個URL等/show_project/trying%29,自動angularjs其轉換爲/show_project/trying),可能是因爲字符「)」的確在URL中被允許。

但是,我需要獲取$routeParams.name在URL中引入的原始字符串,在這種情況下爲trying%29

有什麼辦法可以達到這個目的嗎?

謝謝你的幫助。

回答

0

你可以做到這一點使用ngSanitize:

你的模塊:

'use strict'; 

angular 
.module('appsApp', ['ngRoute', 'ngSanitize']) 
.config(['$routeProvider', function($routeProvider) { 
    $routeProvider.when('/show_project/:name', { 
     templateUrl: 'app/projects/show.html', 
    }) 
}]); 

控制器:

'use strict'; 

angular 
.module('appsApp') 
.controller('appsCtrl', ['$scope', '$routeParams', '$sanitize', 
    function($scope, $routeParams, $sanitize) { 
    var controller = this; 

    var name = $routeParams.name; 

    $scope.name = $sanitize(name); 

}]); 

注:我只是看着,它看起來像有一個新的官方角版本:

https://github.com/angular/bower-angular-sanitize