$ stateParams变为' undefined'传递给控制器​​后

时间:2015-02-12 11:53:14

标签: javascript angularjs

我通过从表中获取单元格值来设置$ 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'的状态参数,但它是未定义的。如何将参数传递给控制器​​及其值?

1 个答案:

答案 0 :(得分:0)

在我改变了$ state.go之后的工作:

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