在我的Angular应用中,我有/items/:id
$routeProvider
.when('/items/:id', {
templateUrl: 'views/items.html',
controller: 'ItemCtrl'
})
在ItemCtrl中,我:id
获得$routeParams.parcId
问题是它是一个字符串,而值是一个数字,我的所有ID都是数字。
那么如何强制使用正确的类型并且默认没有字符串?
ps:我不想在所有控制器中执行var id = Number($routeParams.parcId)
答案 0 :(得分:1)
我是使用 $ routeChangeStart 事件完成的。
在app.js文件中,将以下行添加到.run函数中: -
angular.module('test1App').run(function ($rootScope) {
$rootScope.$on("$routeChangeStart", function (event, next, current) {
if (next.params.hasOwnProperty('id')) {
next.params.id = Number(next.params.id);
}
});
});
描述:在每次路由更改时,它会检查是否存在名为“id”的参数。如果是,则将其更改为数字。
希望它有所帮助。
答案 1 :(得分:0)
您需要在路由中使用resolve并更新变量。然后在控制器中使用此已解析的变量
<a href="http://plnkr.co/edit/2nXeY325ouqyFtJTLcdq?p=preview"> Example </a>