2015-05-22 108 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