0

I set the $stateParam by getting a cell value from a table:

$scope.tableClick = function() {
    var tr = $('#Table_1').find('tr');
    var id = $(event.target).parent().find("td:first").text();
    $stateParams.engineId == id;
    $state.go('engineselection');
}

When I stop the debug at this point. It gives me the engineId value.

This is the router part that I use:

$stateProvider.state('engineselection', {
    url : '/engineselection:engineId',
    templateUrl : 'assets/views/engineselection.html',
    controller : 'EngineSelectionCtrl'
})

This is what happens in the controller:

controllers.controller("EngineSelectionCtrl", 
    ["$scope", "$rootScope", "directiveBinder", '$timeout',    '$stateParams', '$resource', '$location', 'rtmService', '$state',
     function($scope, $rootScope, directiveBinder, $timeout,  $stateParams, $resource, $location, myService, $state) {

myService.loadViewWithEngine(function(id, data) {
    $scope.views = data;
    $scope.$apply();
    $('#loadingViews').spin(false);
});

When I stop here before the function and type console $stateParams, it tells me that I have a state parameter named 'engineId' but it is undefined. What should I do to pass the parameter to the controller with its value?

brainmassage
  • 1,234
  • 7
  • 23
  • 42

1 Answers1

0

Worked after I have changed $state.go call like this:

$state.go('viewselection', {engineProgramId: id});
brainmassage
  • 1,234
  • 7
  • 23
  • 42