视图加载后如何访问控制器中客户的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}}"> ...
答案 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之类的东西,所以更容易使用这个