Angular JS 中视图的访问 ID
Access ID of view in Angular JS
如何在加载视图后访问控制器中客户的 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}}"> ...
您可以从 $stateParams
的控制器中获取它,只需要在您的控制器中添加 $stateParams
依赖项。基本上 $stateParams
将具有 URL
(in object)
中的所有参数
$stateParams.customerId; //
我还建议您使用 ui-sref
指令而不是自己创建 URL,这将通过查看状态创建具有正确 URL 的 href。
<a class="item item-points"
ng-repeat="customer in customers"
ui-sref="app.customer({customerId : customer.Customer.id})">
...
</a>
在控制器中...
$stateParams.customerId (injecting $stateParams service)
或
$state.params.customerId (injecting $state service)
我的偏好是第二种方法,因为我使用 $state 来处理 $state.go 等,所以使用这个
更容易
在你的控制器中注入$stateParams
服务
angular
.module('yourmodule')
.controller('CustomerCtrl',['$scope','$stateParams', function($scope, $stateParams){
console.log($stateParams); //should be object {customerId: 'id-of-customer'}
}])
如何在加载视图后访问控制器中客户的 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}}"> ...
您可以从 $stateParams
的控制器中获取它,只需要在您的控制器中添加 $stateParams
依赖项。基本上 $stateParams
将具有 URL
(in object)
$stateParams.customerId; //
我还建议您使用 ui-sref
指令而不是自己创建 URL,这将通过查看状态创建具有正确 URL 的 href。
<a class="item item-points"
ng-repeat="customer in customers"
ui-sref="app.customer({customerId : customer.Customer.id})">
...
</a>
在控制器中...
$stateParams.customerId (injecting $stateParams service)
或
$state.params.customerId (injecting $state service)
我的偏好是第二种方法,因为我使用 $state 来处理 $state.go 等,所以使用这个
更容易在你的控制器中注入$stateParams
服务
angular
.module('yourmodule')
.controller('CustomerCtrl',['$scope','$stateParams', function($scope, $stateParams){
console.log($stateParams); //should be object {customerId: 'id-of-customer'}
}])