AngularJS $ stateParams.id始终未定义

时间:2016-02-24 00:31:49

标签: angularjs

我不能在很长时间内弄清楚我的代码出了什么问题。 $ stateParams.id始终未定义。 这是我的控制器

.controller('ordersCtrl', [
    '$scope',
    '$http',
    '$stateParams',
    'orders',
    'meals',
    function($scope, $http, $stateParams, orders, meals){
        console.log($stateParams.id); 
    ...
 }])

我的州

.state('orders/{id}', {
    url: '/orders',
    templateUrl: '/orders.html',
    controller: 'ordersCtrl'
})

我的链接

<a href="#/orders/{{$index}}">Order</a>

这有什么问题?

2 个答案:

答案 0 :(得分:5)

你的州应该读:

.state('orders_view', {
    url: '/orders/:id',
    templateUrl: '/orders.html',
    controller: 'ordersCtrl'
})

state()的第一个参数只是一个标签。它不关心参数。这是为url保留的。

此外,链接的正确形式是:

<a href ui-sref="orders_view({id: $index})">Order</a>

答案 1 :(得分:0)

我认为参数的语法可能不同。您可以尝试更改这样的代码:

.state('orders/:id', {
    url: '/orders',
    templateUrl: '/orders.html',
    controller: 'ordersCtrl'
})

我希望这可以帮到你