好吧,我已经实现了angularJS,我正在调用由$routeProvider
处理的不同视图。问题在于例如:
$routeProvider.
when('/prodDetails/:prodID', {
templateUrl: 'templates/productDetails.html',
controller: 'ProductController'
}).
现在,如果我点击:
<a ng-href="#prodDetails/{{ prod.id }}">View Product</a>
浏览器网址会在网址标签中显示prod.id
。如何操纵网址以隐藏其中的敏感信息。
答案 0 :(得分:1)
使用Angular UI Router。它会解决你的问题而不做任何事情。然后你可以使用angular-ui-router给出的params对象传递参数。
答案 1 :(得分:0)
您可以使用angular ui router
您可以通过以下方式实现这一目标:
$stateProvider.
state('productDetail', {
url: '/prodDetails',
templateUrl: 'templates/productDetails.html',
controller: 'ProductController',
params: {
productId: 'defaultId'
}
})
在html中:
<a ui-sref="productDetail({productId: prod.id})">View Product</a>
您可以使用服务$ stateParams从控制器访问productId。
修改强>:
假设您有encodeId
和decodeId
个函数:
<a ui-sref="productDetail({productId: encodeId(prod.id)})">View Product</a>
并在控制器中:
app.controller(function($stateParams) {
var id = decodeId($stateParams.productId);
});