Jus*_*n A 1 angularjs angular-ui-router ui-sref
我有控制器需要接收两个id值.一个id值标识供应商,第二个id标识事件(eventId和VendorId).
我现在的状态就是这样.
.state('/vendordetail', {
url: '/vendordetail/:vendorId',
templateUrl: '/home/vendordetail',
controller: 'VendorDetailController',
resolve: {
vendorId: ['$stateParams', function ($stateParams) {
return $stateParams.vendorId;
}],
vendorPreload: ['$stateParams', 'vendorDetailRepo', '$state', function ($stateParams, vendorDetailRepo, $state) {
if ($stateParams.vendorId != "")
return vendorDetailRepo.get({ id: $stateParams.vendorId }).$promise;
}]
}
});
Run Code Online (Sandbox Code Playgroud)
目前我能够拿到vendorId.但我想在州内加入一个eventId.任何人都可以帮我修改我的状态以获取第二个参数(eventId)吗?
谢谢.
首先,我建议你把你的参数作为url参数,如果你没有充分的理由反对它.
根据这一建议,您的州可能如下所示:
state('/vendordetail', {
url: '/vendordetail?:vendorId:eventId',
templateUrl: '/home/vendordetail',
controller: 'VendorDetailController',
resolve: {
vendorId: ['$stateParams', function ($stateParams) {
return $stateParams.vendorId;
}],
eventId: ['$stateParams', function ($stateParams) {
return $stateParams.eventId;
}],
vendorPreload: ['$stateParams', 'vendorDetailRepo', '$state', function ($stateParams, vendorDetailRepo, $state) {
if ($stateParams.vendorId != "")
return vendorDetailRepo.get({ id: $stateParams.vendorId }).$promise;
}]
}
});
Run Code Online (Sandbox Code Playgroud)
顺便说一句:您不需要解析参数.您只需将$ stateParams注入控制器即可.
| 归档时间: |
|
| 查看次数: |
2538 次 |
| 最近记录: |