Angular JS中的视图访问ID

时间:2015-12-23 16:19:02

标签: javascript html angularjs angular-ui-router angularjs-routing

视图加载后如何访问控制器中客户的customerId

app.js:

  $stateProvider.state('app.customer', {
    url: '/customer/:customerId',
    views: {
      'menuContent': {
        templateUrl: 'templates/customer.html',
        controller: 'CustomerCtrl'
      }
    }
  })

customers.html客户:

<a class="item item-points" ng-repeat="customer in customers" href="#/app/customer/{{customer.Customer.id}}"> ...

3 个答案:

答案 0 :(得分:3)

在您的控制器中注入$stateParams服务

angular
  .module('yourmodule')
   .controller('CustomerCtrl',['$scope','$stateParams', function($scope, $stateParams){
     console.log($stateParams); //should be object {customerId: 'id-of-customer'}
  }])

答案 1 :(得分:2)

您可以在$stateParams的控制器中获取,只需要在控制器中添加$stateParams依赖项。基本上$stateParams将包含URL(在对象中)

中的所有参数
$stateParams.customerId; //

我还建议你使用ui-sref指令而不是自己创建网址,通过查看状态来创建具有正确网址的href。

<a class="item item-points" 
   ng-repeat="customer in customers" 
   ui-sref="app.customer({customerId : customer.Customer.id})">
  ...
</a>

答案 2 :(得分:2)

控制器中的

......

$stateParams.customerId (injecting $stateParams service)

OR

$state.params.customerId (injecting $state service)

我的偏好是第二种方法,因为我将$ state用于$ state.go之类的东西,所以更容易使用这个