10

在我的 Angular 应用程序中,我有类似的路线/items/:id

$routeProvider
    .when('/items/:id', {
      templateUrl: 'views/items.html',
      controller: 'ItemCtrl'
    })

在 ItemCtrl 我得到:id$routeParams.parcId问题是它是一个字符串,而值是一个数字,我所有的 id 都是数字。

那么如何强制正确的类型并且默认没有字符串呢?

ps:我不想var id = Number($routeParams.parcId)在我所有的控制器中做

4

3 回答 3

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”的参数。如果是,则将其更改为数字。

希望它有所帮助。

于 2018-06-08T06:26:26.517 回答
0

您需要在路由中使用解析并更新变量。然后在控制器中使用这个解析变量

<a href="http://plnkr.co/edit/2nXeY325ouqyFtJTLcdq?p=preview"> Example </a>
于 2015-06-23T18:11:05.773 回答
-3

你试过这样吗?

parseInt($routeParams.parcId)
于 2017-05-11T20:18:12.900 回答