因为我必须建立我的网址SEO友好,因为我不能信任用户输出。我想在resolve函数返回成功时重新定义此输入。
示例:
用户写道:http//mydomain.com/city/Newcastle upon Tyne
。
API会返回正确的slug:newcastle-upon-tyne-0191
并加载模板。
我希望在模板加载之前用这个slug反向用户输入:
http//mydomain.com/city/newcastle-upon-tyne-0191
。
我使用UI路由器,这是一种方法($ state,$ stateparams)?
以下是我的路由器代码中使用的部分:
.state('villes.ville', {
url: "/:ville",
cache: false,
parent: 'villes',
templateUrl: "partials/ville.tpl.html",
metaTags: {
title: '{{city.label}} ({{city.zip_code}})',
},
resolve: {
city: function(City, $state, $stateParams){
return City.get({
slug: $stateParams.ville,
shape: true,
details: true
}).$promise.then(
function(data){ return data },
function(error){ $state.go('/404') });
}
},
controller : 'villeCtrl'
})