$stateParams变为'未定义'在传递到控制器之后

$stateParams become 'undefined' after passing to the controller

本文关键字:之后 控制器 未定义 stateParams 变为      更新时间:2023-09-26

我通过从表中获取单元格值来设置$stateParam:

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

此时停止调试时。它给了我engineId值。

这是我使用的路由器部分:

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

这就是控制器中发生的情况:

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);
});

当我在函数和类型console$stateParams之前停在这里时,它告诉我有一个名为"engineId"的状态参数,但它是未定义的。如何将参数及其值传递给控制器?

在我更改$state.go后工作。调用如下:

$state.go('viewselection', {engineProgramId: id});