Estoy tratando de configurar una ruta como la siguiente:
$stateProvider.state('transactions', { url: '/transactions', templateUrl: url, menu: 'Transactions' }); $stateProvider.state('audit', { url: '/transactions/:id/audit', templateUrl: 'url', });Quiero que el usuario navegue a la página de auditoría usando la siguiente URL:
/transactions/100/audit /transactions/200/auditTengo un botón que tiene cierta lógica para redirigir al usuario a la página de "auditoría", pero estoy confundido con ¿cómo configuro $state para lograr esto?
$scope.redirectToAudit = function () { $state.go('audit', { id: $scope.transactionId }); } Entonces, cuando se hace clic en este botón, quiero redirigir al usuario a esta ruta " /transactions/100/audit " y obtener el ID de transactionId 100 en el controlador de la página de registro de auditoría.
var app = angular.module('myApp', []); app.controller('auditCtrl', function($scope) { $scope.transactionId = //retrive transactionId from the path parameter }); Quiero forzar la identificación de la transacción en la URL de auditoría /transactions/100/audit porque toda la página de auditoría funcionará solo con la identificación de la transacción.
¿Cómo configuro mi $stateProvider para admitir la URL y la funcionalidad que describí anteriormente?
Por favor, avíseme si esto funciona para usted.
$stateProvider.state('transactions', { url: '/transactions', templateUrl: url, menu: 'Transactions' }); $stateProvider.state('audit', { url: '/transactions/{id}/audit', templateUrl: 'url', }); ---------------------- var app = angular.module('myApp', []); app.controller('auditCtrl', function($scope, $stateParams) { $scope.transactionId = $stateParams.id; }); ---------------------- app.controller('transactionsCtrl', function($scope, $state) { $scope.redirectToAudit = function () { $state.go('audit', { id: $scope.transactionId; }); } });