Angularjs:如何获得“原始”routeParams(无需编码或解码)

时间:2015-05-22 22:41:12

标签: angularjs angularjs-routing

我的路线如下:

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

我观察到,当我请求类似/show_project/trying%29的网址时,angularjs会自动将其转换为/show_project/trying),这可能是因为网址中确实允许使用字符“)”。

但是,我需要在$routeParams.name中获取网址中引入的原始字符串,在本例中为trying%29

有没有办法实现这个目标?

感谢您的帮助。

1 个答案:

答案 0 :(得分: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);

}]);

注意:我只是看了,看起来这里有一个新的官方Angular版本:

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